Die Klassenklasse ist eine Implementierung, die eine bestimmte Klasse in der Java -Sprache definiert. Eine Klassendefinition umfasst Mitgliedsvariablen, Mitgliedermethoden, von dieser Klasse implementierte Schnittstellen und die übergeordnete Klasse dieser Klasse. Das Objekt der Klassenklasse wird verwendet, um Klassen und Schnittstellen in der derzeit ausgeführten Java -Anwendung darzustellen. Zum Beispiel: Jedes Array gehört zu einem Klassenobjekt, und alle Arrays mit demselben Elementtyp und Dimension teilen ein Klassenobjekt. Grundlegende Java -Typen (Boolesche, Byte, Char, Short, Int, Long, Float und Double) und Hohlraumtypen können ebenfalls als Klassenobjekte dargestellt werden.
Das folgende Beispiel verwendet ein Klassenobjekt, um den Klassennamen eines Objekts anzuzeigen:
void printClassName (Objekt obj) {System.out.println ("Die Klasse von" + obj + "ist" + obj.getClass (). getName ()); }Wir alle wissen, dass alle Java -Klassen die Objektklasse erben. In der Objektklasse gibt es eine Methode: getClass (). Diese Methode wird verwendet, um den Verweis auf die Klasse des Objekts zu erhalten, das instanziiert wurde. Diese Referenz zeigt auf das Objekt der Klasse (hehe, es ist ein bisschen unangenehm). Wir können kein Klassenobjekt (Konstruktor privat) generieren, und das Objekt dieser Klasse wird automatisch von der virtuellen Java -Maschine erstellt, wenn verschiedene Klassen in der Klassenlader eingerufen oder von der definitiven Methode generiert werden. Das von uns generierende Objekt hat ein Feld, um den Ort des Objekts der Klassenklasse aufzuzeichnen. Wie in der Abbildung unten gezeigt:
Wir können jedes Klassenobjekt für viele Klassen als Proxy behandeln. Darüber hinaus gibt es in jedem Klassenobjekt einen Klassenlader, der die Klasse IT -Referenzen aufzeichnet. Wenn dieses Feld null ist, bedeutet dies, dass der Lader der Klasse ein Bootstrap -Loader ist. Aus dem spezifischen Grund finden Sie im Artikel "Classloader -Arbeitsmechanismus", den ich zuvor geteilt habe.
Wir wissen, dass es in Java mehrere Lader gibt, und jeder Loader kann mehrere Klassen laden. Solange Sie das Klassenobjekt erhalten, können Sie die Methode getClassLoader () verwenden, um den Verweis auf den Klassenlader zu erhalten.
JVM ist ein Klassenobjekt, das für jeden Managertyp einzigartig ist. Daher können wir den Biequal -Operator verwenden, um Objekte zu vergleichen: a1.getClass () == A.Class; Derjenige, der zurückgegeben werden sollte, ist wahr.
Forname (String ClassName) und Forname (StringClassName, { *} boolean initialze, *classloader *loader) *Methoden.
Diese Methode gibt das entsprechende Klassenobjekt mit dem angegebenen String -Namen zurück. Bei dem vollständigen Pfadnamen einer Klasse oder Schnittstelle versucht diese Methode, die Klasse zu lokalisieren, zu laden und zu verbinden. Wenn Sie erfolgreich sind, geben Sie das Objekt dieser Klasse zurück. Ansonsten werfen Sie eine ClassNotFoundException -Ausnahme. Zum Beispiel gibt der folgende Code -Snippet einen laufenden Klassendeskriptor namens Java.lang.Thread zurück. Classst = class.forname ("java.lang.thread"); Diese Methode erfordert die Angabe des Klassenladers. Wenn die Forname -Methode mit nur einem String -Parameter verwendet wird, ruft das Klassenobjekt den aktuellen Klassenlader standardmäßig als Loader auf und stellt den zweiten Parameter auf True fest. In der zweiten Parameterbeschreibung: Wenn falsch, lädt es die Klasse nur in der Befehlsklassenlader auf, die statische Blockade der Klasse zu initialisieren. Der statische Block wird nur aufgerufen, wenn die Klasse zum ersten Mal instanziiert wird. Wenn der statische Block beim Laden aufgerufen wird.
getClassloader ()
Holen Sie sich den Klassenloader für diese Klasse.
GetComponentType ()
Wenn die aktuelle Klasse ein Array darstellt, gibt sie das Klassenobjekt zurück, das die Komponente des Arrays darstellt, andernfalls gibt es NULL zurück.
getConstructor (Klasse [])
Gibt das angegebene öffentliche Konstruktor -Kinderobjekt der Klasse zurück, das vom aktuellen Klassenobjekt dargestellt wird.
GetConstructors ()
Gibt eine Reihe aller öffentlichen Konstruktor -Unterobjekte der Klasse zurück, die vom aktuellen Klassenobjekt dargestellt werden.
getDeclaredConstructor (Klasse [])
Gibt ein von der Klasse angegebenes Konstruktor -Subjekt zurück, das vom aktuellen Klassenobjekt dargestellt wird.
GetDeclaredConstructors ()
Gibt ein Array aller angegebenen Konstruktor -Unterobjekte der Klasse zurück, die durch das aktuelle Klassenobjekt dargestellt werden.
getDeclaredfield (String)
Gibt ein Domänenobjekt zurück, das für die Klasse oder Schnittstelle angegeben wurde, die vom aktuellen Klassenobjekt dargestellt wird.
getDeclaredfields ()
Gibt ein Array aller angegebenen Domänenobjekte für die Klasse oder Schnittstelle zurück, die durch das aktuelle Klassenobjekt dargestellt wird.
getDeclaredMethod (String, Klasse [])
Gibt ein Methodenobjekt zurück, das für die angegebene Klasse oder Schnittstelle angegeben wurde, die vom aktuellen Klassenobjekt dargestellt wird.
GetDeclaredMethods ()
Gibt ein Array aller angegebenen Methoden für die Klasse oder Schnittstelle zurück, die vom Klassenobjekt dargestellt werden.
Getfield (String)
Gibt das angegebene Objekt der öffentlichen Mitgliedsdomäne der Klasse oder Schnittstelle zurück, die durch das aktuelle Klassenobjekt dargestellt wird.
getfields ()
Gibt eine Reihe von zugänglichen Public -Domain -Objekten für die Klasse oder Schnittstelle zurück, die durch das aktuelle Klassenobjekt dargestellt wird.
GetInterfaces ()
Gibt die von der Klasse implementierte Schnittstelle zurück, die durch das aktuelle Objekt oder die Schnittstelle dargestellt wird.
GetMethod (String, Klasse [])
Gibt das angegebene Objekt der öffentlichen Mitgliedsmethode der Klasse oder Schnittstelle zurück, die vom aktuellen Klassenobjekt dargestellt wird.
GetMethods ()
Gibt ein Array aller öffentlichen Mitglieder -Methodenobjekte für die Klasse oder Schnittstelle zurück, die vom aktuellen Klassenobjekt dargestellt werden, einschließlich deklarierter und von der übergeordneten Klasse geerbten.
GetModifiers ()
Gibt den Java -Sprachmodifikator -Code für die Klasse oder Schnittstelle zurück.
GetName ()
Gibt die vollständige Pfadname -Zeichenfolge des Typs (Klasse, Schnittstelle, Array oder Basistyp) zurück, die vom Klassenobjekt dargestellt werden.
GetResource (String)
Finden Sie Ressourcen nach dem angegebenen Namen.
GetResourceAsStream (String)
Finden Sie Ressourcen mit dem angegebenen Namen.
GetSigers ()
Holen Sie sich das Klassen -Tag.
GetuperClass ()
Wenn dieses Objekt eine Klasse außer einem Objekt darstellt, wird das übergeordnete Klassenobjekt dieses Objekts zurückgegeben.
isarray ()
Rückgabe true, wenn das Klassenobjekt ein Array darstellt, ansonsten false zurückgeben.
isassidesignable aus (Klasse)
Bestimmt, ob die vom Klassenobjekt dargestellte Klasse oder Schnittstelle der Klasse oder Schnittstelle entspricht, die durch die vom Parameter angegebene Klasse dargestellt wird, oder deren übergeordnete Klasse ist.
Issinstance (Objekt)
Diese Methode ist eine dynamische äquivalente Methode, beispielsweise Operationen in der Java -Sprache.
isInterface ()
Bestimmt, ob das angegebene Klassenobjekt einen Schnittstellentyp darstellt.
isPrimitive ()
Bestimmt, ob das angegebene Klassenobjekt einen Java -Basistyp darstellt.
newinstance ()
Erstellen Sie eine neue Instanz der Klasse.
tostring ()
Konvertiert ein Objekt in eine Zeichenfolge.
Zusammenfassen
Das oben genannte ist der gesamte Inhalt dieses Artikels über kurz darüber diskutieren der Klassenklasse in Java, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!