Reflection ist, wie der Name schon sagt, eine API-Funktionalität (Application Programming Interface) in JAVA, über die die Laufzeitinstanz der Klasse vollständig untersucht werden kann. Es ist Teil des Java.lang.reflect-Pakets. Dieses Paket muss beim Start des Programms importiert werden, und dann werden Funktionen aufgerufen, um die Funktionalität der „Reflexion“ zu verstehen. Das Verhalten jeder Klasse kann untersucht werden; Metadaten können mithilfe der Reflection-API zur Laufzeit extrahiert oder geändert werden.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Die Syntax allgemeiner Funktionen unter der Reflection-API zum Extrahieren der Klasseninformationen ist unten angegeben:
Die Reflection-Klasse verwendet verschiedene im Java.lang.reflect-Paket definierte Methoden, um die Klasseninformationen zu extrahieren. Die Informationen zur Klasse können mit der Methode getClass(), zu Konstruktoren mit der Methode getConstructors() und zu Methoden mit der Methode getMethods() extrahiert werden. Diese Methoden werden in der Reflection-API definiert, geben jedoch die Informationen der Klasse zurück, einschließlich Methoden, Konstruktoren und mehr. Die Reflection API wird in JAVA-Programmen und IDEs (Integrated Development Environment) wie Eclipse und Netbeans verwendet. Dies kann anhand der Beispiele im folgenden Abschnitt gut verstanden werden.
Verschiedene Beispiele sind unten aufgeführt:
Code:
//package test; import java.lang.Class; public class test{ public static void main(String args[]){ Class<Boolean> c1 = boolean.class; System.out.println("Here, the class name is: "+c1.getName()); Class<test> c2 = test.class; System.out.println("This is another instance of class is used to derive class name : "+c2.getName()); } }
Ausgabe:
Erklärung: Bitte überprüfen Sie das oben bereitgestellte Beispiel. Dies verfügt über ein Paket, das alle Klassen mit dem Namen „test“ enthält. Das Testpaket hat eine Klasse „test deklariert“. Diese Klasse enthält auch die Hauptmethode, von der aus die Ausführung des Programms gestartet wird. Die Klasse „Klasse
In der nächsten Zeile wird anstelle der Verwendung eines primitiven Datentyps eine benutzerdefinierte Datentyp-„Klasse“ mit dem Namen „test“ zum Extrahieren der Daten berücksichtigt. „Klasse
Code:
//package test; import java.lang.Class; class Simple{} public class test{ public static void main(String args[]){ try{ Class<?> c=Class.<em>forName</em>("Simple"); System.<em>out</em>.println("The result is: "+c.isInterface()); }catch(Exception e){System.<em>out</em>.println(e);} } }
Ausgabe:
Erklärung: Im obigen Beispiel wird ein Paket mit dem Namen „test“ erstellt, wie im vorherigen Beispiel Nummer 1 erstellt. Dieses Paket enthält einen Klassennamen „Simple“, der nicht die Hauptklasse ist . Die Hauptklasse ist hier die „Test“-Klasse, die die Hauptmethode enthält, von der aus die Ausführung des Programms gestartet wird. Die „Klasse >“ ist ein Bezeichner der Reflektionsklasse, die hier über ein Objekt mit dem Namen „c“ instanziiert wurde. Dann wird dieses Objekt verwendet, um den Entscheidungsindikator (True oder False) der Funktion namens „isInaterface“ abzurufen. Diese Funktion ruft eine Klasse als Parameter ab; In diesem Fall war die Klasse, die als Parameter herangezogen wurde, die Klasse „Simple“. Da es sich bei dieser Klasse nicht um eine Schnittstelle handelt, wird im Ausgabebildschirm als Ergebnis „false“ zurückgegeben. Um diese Funktion aufzurufen, wurde das Klassenobjekt „c“ verwendet.
Einige der Vorteile der Verwendung von Reflektion in JAVA sind unten aufgeführt:
JAVA-Reflektion ermöglicht es, die Klassen, Schnittstellen, Methoden und mehr zu untersuchen, ohne den Klassennamen überhaupt zu kennen. Dies alles wird während der Kompilierungszeit erledigt. Dies gilt als eine der mächtigsten Eigenschaften von JAVA, da damit Instanzen der Klasse erstellt und private Mitglieder der Klasse damit extrahiert werden können. Entwickler können dies zur Laufzeit und auch für die Zuordnung von Datenbankobjekten verwenden.
Das obige ist der detaillierte Inhalt vonReflexion in JAVA. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!