


Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode
In diesem Artikel wird hauptsächlich das Implementierungsprinzip der Java-Methodenreflexion ausführlich vorgestellt, das einen gewissen Referenzwert hat.
Der Blogger sagte: Der Java-Reflexionsmechanismus ist Im laufenden Zustand können Sie für jede Klasse alle Eigenschaften und Methoden dieser Klasse kennen und jede ihrer Methoden und Eigenschaften aufrufen wird als Reflexionsmechanismus der Java-Sprache bezeichnet. In diesem Artikel analysiert Zhan Xiaolang das Implementierungsprinzip (Quellcode) des Java-Reflexionsmechanismus. Interessierte Schüler können diesen Artikel einige Minuten lang lesen, um ihn zu verstehen.
Text
public class ReflectCase { public static void main(String[] args) throws Exception { Proxy target = new Proxy(); Method method = Proxy.class.Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode("run"); method.Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode(target); } static class Proxy { public void run() { System.out.println("run"); } } }
Method Get
Rufen Sie Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode der Class-Klasse auf, um das Methodenobjekt Method mit dem angegebenen Methodennamen und den angegebenen Parametern abzurufen.Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode
Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode
-Methode. Method.copy()
Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode
Rufen Sie die Liste der in dieser Klasse deklarierten Methoden aus dem Cache oder der Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode ab. Die Implementierung ist wie folgt:Methodenaufrufe
Nachdem Sie die angegebene Methodenobjektmethode erhalten haben, können Sie deren Aufrufmethode wie folgt aufrufen:
In der ReflectionFactory-Klasse gibt es zwei wichtige Felder: noInflation (Standardwert falsch) und inflationThreshold (Standardwert 15). In der checkInitted-Methode können Sie -Dsun.reflect.inflationThreshold=xxx und -Dsun.reflect.noInflation= übergeben true Setzen Sie diese beiden Felder zurück und legen Sie sie nur einmal fest. Wenn noInflation false ist, gibt die Methode newDetaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl das DelegatingDetaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekt zurück:
Tatsächlich DelegatingDetaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekt Es ist ein Proxy-Objekt, das für den Aufruf der Invoke-Methode des Delegaten des delegierten Objekts verantwortlich ist. Der Delegate-Parameter ist derzeit ein NativeDetaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekt, daher ruft die Invoke-Methode der letzten Methode die Invoke-Methode des NativeDetaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekts auf :
Der inflationThreshold in der ReflectionFactory-Klasse wird hier verwendet. Nachdem der Delegat die Aufrufmethode 15 Mal aufgerufen hat, wird das Detaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekt über die genericMethod generiert Methode der Detaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeGenerator-Klasse und als Delegate-Objekt festgelegt, sodass die Methode beim nächsten Aufruf ausgeführt wird, wird die Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode()-Methode des neu erstellten Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode-Objekts aufgerufen. Hier ist zu beachten, dass die Methode „generateMethod“ beim Generieren eines Detaillierte Erläuterung der Prinzipien der Java-ReflexionsimplementierungsmethodeImpl-Objekts den entsprechenden Bytecode im Speicher generiert und ClassDefiner.defineClass aufruft, um das entsprechende Klassenobjekt zu erstellen. Die Implementierung lautet wie folgt:
In der Implementierung der ClassDefiner.defineClass-Methode wird bei jedem Aufruf ein Detaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode-Klassenladeobjekt generiert:
Eine neue Klasse Der Loader wird hier jedes Mal generiert. Aus Leistungsgründen können diese generierten Klassen in einigen Fällen entladen werden, da das Entladen von Klassen nur dann recycelt werden kann, wenn der ursprüngliche Klassenlader verwendet wird Dies kann dazu führen Diese neu erstellten Klassen sollen niemals entladen werden. Aus gestalterischer Sicht möchten wir nicht, dass diese Klassen immer im Speicher vorhanden sind.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Prinzipien der Java-Reflexionsimplementierungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.
