In Java gibt es zwei Möglichkeiten, eine Klassenmethode aufzurufen: Für statische Methoden können Sie den Klassennamen direkt aufrufen, und für nicht statische Methoden müssen Sie den Klassenobjektaufruf verwenden. Der Reflexionsmechanismus bietet eine relativ alternative Aufrufmethode, mit der die Methode angegeben werden kann, die nach Bedarf aufgerufen werden soll, ohne dass während der Programmierung bestimmt werden muss. Die genannte Methode ist nicht auf die Öffentlichkeit beschränkt, kann aber auch privat sein. Schreiben Sie ein Programm, das den Reflexionsmechanismus verwendet, um die statische Methode sin () und die nicht statische Methode gleich () der Mathematikklasse aufzurufen.
Die Idee lautet wie folgt: Verwenden Sie Math.class.getDeclaredMethod ("sin", double.type); Der Typ des Eintragsparameters ist doppelt.
Der Code ist wie folgt:
Die Codekopie lautet wie folgt:
import Java.lang.reflect.Method;
öffentliche Klasse Dongtai {
public static void main (String [] args) {
versuchen {
System.out.println ("Rufen Sie die statische Methode sin () der Mathematikklasse an");
Methode sin = math.class.getDeclaredMethod ("sin", double.type);
Double sin1 = (doppelt) sin.invoke (NULL, New Integer (1));
System.out.println ("1's Sinuswert ist:" + sin1);
System.out.println ("Rufen Sie die nicht statische Methode gleich () der String-Klasse auf");
Methode equals = string.class.getDeclaredMethod ("Equals", Object.class);
Boolean mrsoft = (boolean) Equals.invoke (neue String ("morgen Technologie"), "Tomorrow Technology");
System.out.println ("ist die String Tomorrow -Technologie:" + Mrsoft);
} catch (Ausnahme e) {
E. printstacktrace ();
}
}
}
Der Effekt wird im Bild gezeigt: