Introspección e invocación de métodos declarados

Joseph
13 de Junio del 2006
Hola,
Quisiera saber si hay manera de invocar a un método descubierto por introspección de un objeto, por ejemplo:

Tengo la siguiente clase:

public class TheObject {
private String message;

public void setMessage(String message) {
this.message = message;
}

public String getMessage() {
return this.message;
}

public int showMessage(int times) {
if (times > 0) {
for (int i = 0; i < times; i++)
System.out.println(message);
return 0;
} else
return 1;
}
}

Luego en un cliente cargo su clase:

public class TheObjectLoader {
public static void main(String[] arg) {
Class theClass = Class.forName("TheObject");
Object theInstance = theClass.newInstance();

Method[] methods = theClass.getMethods();
System.out.println(methods[0]..getName());

//Aquí esta mi problema
}
}

Cómo debo hacer para invocar al método setMessage(String mesage) descubierto por introspección?
Si tuvieran algun ejemplo o referencia de algun API me serviría de mucho...

Les agradezco.

Joseph.
Luego por introspección, lo cargo desde un cliente



Joseph
13 de Junio del 2006
Hola,

Saben anduve investigando un poco más y encontré en http://en.wikipedia.org/wiki/Reflection_(computer_science) algo que me ayudó... era simple...

public class TheObjectLoader {
public static void main(String[] arg) {
Class theClass = Class.forName("TheObject");
Object theInstance = theClass.newInstance();

Method[] methods = theClass.getMethods();
System.out.println(methods[0].getName());

//Aquí ESTABA mi problema
//Uso el método invoke(Object, Object);
methods[0].invoke(theInstance, "Hello");


}
}

Espero que esta referencia sirva aunque ea de algo a alguien...

Joe.