Ich hatte nicht die Möglichkeit, die Methode dynamisch aufzurufen und zu verwenden, aber ich war neugierig, sie im Quellcode zu sehen, also habe ich sie in die Praxis umgesetzt.
Ich habe eine Klasse zur Bestätigung erstellt und ausprobiert. Hier empfängt die Invoke-Klasse den Methodennamen der Getmethod-Klasse und ruft ihn dynamisch auf. Es scheint, dass wir verschiedene Dinge tun können, wenn wir mehr entwickeln, aber zuallererst besteht der Zweck darin, unsere Hände zu bewegen und sie in Erinnerung zu rufen.
class Getmethod {
public void a(){
System.out.println("Genannt");
}
public void b(String str){
System.out.println(str + "Namens");
}
public void c(String str,String str2){
System.out.println(str + "Wann" + str2 + "Namens");
}
}
public class Invoke {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
try {
//Holen Sie sich Klasse
Class<?> g = Class.forName("invoke.Getmethod");
//Holen Sie sich eine Instanz
Object myobj = g.newInstance();
//Methode abrufen
Method a = g.getMethod("a");
Method b = g.getMethod("b",String.class);
Method c = g.getMethod("c",String.class,String.class);
//Ausführung der Methode
a.invoke(myobj);
b.invoke(myobj,"b");
c.invoke(myobj,"c","d");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Unten ist das Ausführungsergebnis.
Genannt
Genannt b
Genannt c und d
Verwendung Wenn Sie eine solche Verwendung haben, warten wir auf eine Bearbeitungsanforderung.
Recommended Posts