Originariamente inviato da alf83
se i parametri da passare alla funzione fossero zero?
Ok ma devi comunque "saperlo".
Ecco un esempio:
codice:
import java.lang.reflect.*;
public class Prova {
public static void main(String[] args) {
try {
Class c = Class.forName("javax.swing.JLabel");
Object label = c.newInstance();
Method m = c.getMethod("setText", new Class[] { String.class });
m.invoke(label, new Object[] { "testo" });
m = c.getMethod("setBounds", new Class[] { int.class, int.class, int.class, int.class });
m.invoke(label, new Object[] { new Integer(10), new Integer(10), new Integer(100), new Integer(30) });
} catch (Exception e) {
System.out.println(e);
}
}
}
Il codice è pre Java 5. Se si usa Java 5 o superiore si può semplificare un pochino (perché getMethod e invoke li hanno resi metodi "varargs" e si può anche usare l'autoboxing).
Comunque vedi che devi conoscere quantità e tipo esatto dei parametri per poter ottenere un Method e nella invocazione di invoke devi passare tanti Object quanti sono i parametri (e questo vuol dire che i primitivi li devi convertire)