Was ist Reflexion?
Da die Reflexion eine „Umkehrung“ hat, bedeutet dies, dass es sich um einen umgekehrten Prozess handelt. Schauen wir uns also zunächst an, wie der Vorwärtsprozess aussieht. Entwerfen Sie eine Klasse, instanziieren Sie die Klasse in ein Objekt und das Objekt ruft Methoden oder Eigenschaften auf, um einige Funktionen zu implementieren.
Was ist Reflexion?
Ich weiß nicht, ob Sie sich noch an das Bild oben erinnern. Dies ist das Wissen, das ich gelernt habe, als ich zum ersten Mal mit Java in Kontakt kam. Mein eigenes Verständnis ist, dass ich jetzt 1 kenne, auf 2 schließe und dann über 2 weitere Informationen erhalte. (Dies ist nur meine Spekulation. Ob es wahr ist oder nicht, wir müssen uns in Zukunft damit befassen)
Die Analogie zum realen Szenario ist:你:妈妈,你知道剪刀在哪吗? 妈妈:我那天放针线的时候好像在针线盒里看到了,你去找找有没有。针线盒在客厅的茶几上。 你:好的。Dann Sie haben „Nähkasten“ von „Nähen“ abgeleitet und dann „Schere“ von „Nähkasten“ gefunden. Unsere Überlegung besteht darin, die Klassenklasse von der Klasse oder dem Objekt abzuleiten und dann die Klasseninformationen von der Klassenklasse abzurufen. Noch verwirrter? Machen Sie sich keine Sorgen, schauen Sie bitte nach unten.
Finden Sie das Nähkästchen – holen Sie sich die Class-Klasse
Was ist zunächst die Class-Klasse? Die Class-Klasse ist die Klasse der People-Klasse, genau wie die People-Klasse die Klasse von p ist. Die Class-Klasse ist der „Großvater“ von p.Wir können es so verstehen: Das Instanzobjekt von java.lang.Class ist People, und das Instanzobjekt von People ist p. Unsere Idee besteht darin, die Class-Klasse über die People-Klasse oder das p-Objekt abzurufen und dann die People-Klasseninformationen wie Attribute, Methoden, Konstruktoren usw. über die Class-Klasse abzurufen. Da wir nun wissen, was die Class-Klasse ist, sprechen wir darüber, wie wir sie erhalten. Es gibt drei Möglichkeiten, die Class-Klasse zu finden:
Es ist erwähnenswert, dass c1, c2 und c3 als „Klassentypen“ von bezeichnet werden die People-Klasse. Okay, jetzt fassen wir die bekannten Bedingungen zusammen: Personen: Klasse
p: Objekt
c: Klassentyp
Suchen die Schere – Holen Sie sich die Informationen der People-Klasse
Anwendung 1: Holen Sie sich alle Methoden der Klasse
Bei der Methode zum Abrufen der People-Klasse ist ms ein Array, das die People-Klassenmethode speichert. Durch eine Schleife werden Name, Parametertyp und Rückgabewert Schicht für Schicht abgerufen. Zum Schluss rufen Sie es einfach direkt in der Hauptfunktion auf
Ein Teil der erhaltenen Ergebnisse lautet wie folgt:
Anwendung 2: Alle Attribute der Klasse abrufen
Die aufrufende Methode ähnelt der aufrufenden Methode : Ergebnis ausführen:
Anwendung 3: Holen Sie sich den Konstruktor der Klasse
Der Konstruktor ist ähnlich, nein schon wieder.Anwendung 4: Erhalten Sie eine bestimmte Methode der Klasse
Die Ergebnisse der beiden Aufrufmethoden sind die gleichen:
Für genauere Informationen , Sie finden es in der API-Dokumentation: http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
Das Konzept der Reflexion
Am Ende des Artikels fassen wir das Konzept der Reflexion zusammen und lassen unsere Gedanken erhaben werden.
Was ist die Definition von Reflexion?
Der JAVA-Reflexionsmechanismus befindet sich im laufenden Zustand. Sie können alle Eigenschaften und Methoden dieser Klasse kennen und jede ihrer Methoden aufrufen Das dynamische Abrufen und Aufrufen von Objektmethoden wird als Reflexionsmechanismus der Java-Sprache bezeichnet.
Ist Reflexion notwendig?
„Der Reflexionsmechanismus ist der Eckpfeiler vieler Java-Frameworks.“
(1) Schreiben Sie die Konfiguration in die XML-Datei oder in die Eigenschaften, analysieren Sie dann den Inhalt in der XML oder die Eigenschaften in der Java-Klasse, um eine Zeichenfolge zu erhalten, und verwenden Sie dann den Reflexionsmechanismus, um eine bestimmte Zeichenfolge basierend darauf zu erhalten Diese Zeichenfolge ist eine Klasseninstanz, sodass Sie nicht jedes Mal etwas Neues hinzufügen oder andere Dinge im Code tun müssen. Wenn Sie sie in Zukunft ändern möchten, können Sie die Konfiguration direkt ändern Datei, was die Codepflege sehr komfortabel macht.
(2) Um bestimmte Anforderungen zu erfüllen, ist es manchmal nicht möglich, andere Methoden in einer Java-Klasse direkt aufzurufen. Dies kann auch durch den Reflexionsmechanismus erreicht werden.
Nachteile der Reflexion?
Wir können im Code auch sehen, dass der reflektierte Code mehr Code als der normale Aufrufcode ist und die Leistung langsamer ist, sodass die Verwendung von Reflektion vermieden werden sollte. Dies ist gleichbedeutend damit, dass Sie, wenn Sie bereits wissen, wo sich die Schere befindet, nicht durch den Nadel- und Faden-Nähkasten-Scheren-Pfad gehen müssen.
Was sind die Kriterien für den Einsatz von Reflexion?
Wenn eine Funktion ohne Reflexion abgeschlossen werden kann, ist es am besten, sie nicht zu verwenden.
php Chinesische Website, eine große Anzahl kostenloser Java-Einführungs-Tutorials, willkommen zum Online-Lernen!
Das obige ist der detaillierte Inhalt vonWas ist Java-Reflexion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!