Introspección e invocación de métodos declarados
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
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
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.
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.
