Detaillierte Erläuterung des Reflexionsmechanismus in Java
Dieser Artikel enthält hauptsächlich relevante Informationen zur detaillierten Erläuterung von Beispielen für den Java-Reflexionsmechanismus. Ich hoffe, dass dieser Artikel jedem helfen kann, den Reflexionsmechanismus zu verstehen und zu beherrschen.
Java Detaillierte Erläuterung von Beispielen für Reflexionsmechanismen
Vorwort
Heute werde ich den Reflexionsmechanismus von Java vorstellen, den wir früher verwendet haben Erhalten Sie eine Instanz einer Klasse. Das ist zu niedrig. Kommen Sie heute mit mir, um einen fortgeschritteneren Weg zu lernen, dies zu erreichen.
Text
Definition des Java-Reflexionsmechanismus
Der Java-Reflexionsmechanismus bedeutet, dass er im laufenden Zustand für jede Klasse bekannt sein kann Alle Eigenschaften und Methoden dieser Klasse; für jedes Objekt können alle seine Methoden und Eigenschaften aufgerufen werden; diese Funktion zum dynamischen Abrufen von Informationen und zum dynamischen Aufrufen der Methoden des Objekts wird als Reflexionsmechanismus der Java-Sprache bezeichnet. Um es in einem Satz zusammenzufassen: Durch Reflexion können die Eigenschaften und Methoden jeder Klasse zur Laufzeit realisiert werden.
Die Vor- und Nachteile des Reflexionsmechanismus
Warum den Reflexionsmechanismus verwenden? Reicht es nicht, Objekte direkt zu erstellen? Dazu gehören die Konzepte der dynamischen und statischen Kompilierung:
Bestimmen Sie den Typ zur Kompilierungszeit und binden Sie das Objekt, dh übergeben Sie es.Dynamische Kompilierung
: Bestimmen Sie den Typ und binden Sie das Objekt zur Laufzeit. Die dynamische Kompilierung maximiert die Flexibilität von Java, verkörpert polymorphe Anwendungen und reduziert die Kopplung zwischen Klassen.Vorteile
Es kann eine dynamische Erstellung von Objekten und Kompilierung realisieren, was insbesondere bei der Entwicklung von J2EE eine große Flexibilität darstellt. Die Leistung ist sehr offensichtlich. Beispielsweise ist es bei einer umfangreichen Software unmöglich, sie auf einmal perfekt zu entwerfen. Wenn sich herausstellt, dass bestimmte Funktionen aktualisiert werden müssen, können wir den Benutzer nicht auffordern, die vorherigen zu deinstallieren Wenn dies der Fall ist, wird diese Software definitiv nicht von vielen Menschen verwendet. Wenn es statisch ist, muss das gesamte Programm einmal neu kompiliert werden, um die Funktionsaktualisierung zu realisieren. Wenn es den Reflexionsmechanismus verwendet, muss es nicht deinstalliert werden, sondern muss nur zur Laufzeit dynamisch erstellt und kompiliert werden.
Nachteile
Wirkt sich auf die Leistung aus. Die Verwendung von Reflection ist im Grunde eine interpretierte Operation, bei der wir der JVM mitteilen können, was wir tun möchten und die unseren Anforderungen entspricht. Solche Vorgänge sind immer langsamer als die direkte Ausführung desselben Vorgangs.
Verstehen der Klassenklasse und des Klassentyps
Eine Klasse ist ein Instanzobjekt der Klasse java.lang.Class, und eine Klasse ist eine Klasse aller Klassen (für gewöhnliche Objekte gibt es eine Klasse, die wir im Allgemeinen erstellen und darstellen). Sie sehen so aus:
Wie oben erwähnt, sind alle Klassen Objekte der Klasse. Wie kann man das also folgendermaßen ausdrücken:
Code code1 = new Code();
Aber wenn wir uns den Quellcode von Class ansehen, ist er so geschrieben:
Class c = new Class();
Sie können sehen, dass der Konstruktor privat ist. Nur die JVM kann ein neues Klassenobjekt wie eine normale Klasse erstellen. Obwohl wir kein neues Klassenobjekt erstellen können, können wir ein Klassenobjekt über eine vorhandene Klasse abrufen . Es gibt drei Möglichkeiten:
private Class(ClassLoader loader) { classLoader = loader; }
Dies zeigt, dass jede Klasse eine implizite statische Mitgliedsvariablenklasse hat, die durch Abrufen der statischen Mitgliedsvariablenklasse erhalten wird der Klasse
Class c1 = Code.class;
code1 ist ein Objekt von Code, das über die getClass()-Methode eines Klassenobjekts erhalten wird
Class c2 = code1.getClass();
Diese Methode besteht darin, dass die Class-Klasse die forName-Methode aufruft, die über den vollständig qualifizierten Namen einer Klasse abgerufen wird. Hier sind c1, c2 und c3 alle Objekte von Klasse Sie sind genau gleich, und es gibt einen wissenschaftlichen Namen namens Code-Klassentyp. Das ist seltsam. Haben wir nicht gesagt, dass Code ein Objekt der Klasse ist und c1, c2 und c3 auch Objekte der Klasse sind, also ist Code nicht dasselbe wie c1, c2 und c3? Warum heißt es auch Code und um welche Art von Klasse handelt es sich? Lassen Sie sich hier nicht darauf ein, ob sie gleich sind, sondern verstehen Sie einfach, was der Klassentyp bewirkt. Wie der Name schon sagt, ist der Klassentyp der Typ der Klasse, das heißt, er beschreibt, was eine Klasse ist und was sie enthält , sodass wir eine Klasse anhand des Klassentyps kennen können. Die Eigenschaften und Methoden einer Klasse können aufgerufen werden, und dies ist die Grundlage der Reflexion.
Class c3 = Class.forName(“com.trigl.reflect.Code”);
Ausführungsergebnis:
public class ReflectDemo { public static void main(String[] args) throws ClassNotFoundException { //第一种:Class c1 = Code.class; Class class1=ReflectDemo.class; System.out.println(class1.getName()); //第二种:Class c2 = code1.getClass(); ReflectDemo demo2= new ReflectDemo(); Class c2 = demo2.getClass(); System.out.println(c2.getName()); //第三种:Class c3 = Class.forName("com.trigl.reflect.Code"); Class class3 = Class.forName("com.tengj.reflect.ReflectDemo"); System.out.println(class3.getName()); } }
com.tengj.reflect.ReflectDemo com.tengj.reflect.ReflectDemo com.tengj.reflect.ReflectDemo
Wir wussten schon früher, wie wir eine Klasse erhalten. Was können wir also mit dieser Klasse machen?
Die Zusammenfassung lautet wie folgt:
Holen Sie sich die Mitgliedsvariable Feld
Holen Sie sich den Konstruktor Konstruktor
Im Folgenden wird es im Detail vorgestellt
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Reflexionsmechanismus in Java. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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 perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

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.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
