Je suis en train de tester la méthode de réflexion dans Java. Je veux utiliser la méthode de réflexion au lieu de la méthode switch pour invoquer des méthodes. Supposons, je la classe ci-dessous:Utilisation de la méthode de réflexion à la place du commutateur
public class Sample {
public void add(int a, int b) {
System.out.println("a + b = " + (a + b));
}
public void subtract(int a, int b) {
System.out.println("a - b = " + (a - b));
}
public void multiply(int a, int b) {
System.out.println("a * b = " + (a * b));
}
public void divide(int a, int b) {
System.out.println("a/b = " + (a/b));
}
puis, dans la principale méthode, l'utilisateur entre un nom de méthode pour appeler une méthode. Mais, je ne sais pas comment définir les paramètres a et b dans la méthode principale après avoir appelé une méthode. Le code pour la méthode principale est ici:
public class Test {
public static void main(String[] args) {
try {
Scanner scr = new Scanner(System.in);
String str = scr.next();
Object obj = Class.forName("packageName.Sample").newInstance();
Method method = obj.getClass().getDeclaredMethod(str);
method.invoke(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
}
http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html#invoke%28java.lang.Object,%20java.lang.Object...% 29 –