Klassennamen in Java ermitteln

Google Translate Icon

In diesem Beitrag wird erläutert, wie der Klassenname der zugrunde liegenden Klasse von Objekten in Java ermittelt wird.

1. Klasse get*Name() Methoden

Der einfachste Weg ist, die anzurufen getClass() -Methode, die den Namen oder die Schnittstelle der Klasse zurückgibt, die durch ein Objekt dargestellt wird, das kein Array ist. Können wir auch verwenden getSimpleName() oder getCanonicalName(), die den einfachen Namen (wie im Quellcode) bzw. den kanonischen Namen der zugrunde liegenden Klasse zurückgibt. getTypeName() ist eine neue Ergänzung zu JDK in Java SE 8, die intern aufruft getClass().

⮚ Für Klassenobjekte:

⮚ Für Referenztypen:

⮚ Für Arrays:

2. Verwenden Class.getEnclosingClass() Methode

Für die anonyme innere Klasse müssen wir anrufen Class.getEnclosingClass() die die unmittelbar einschließende Klasse der zugrunde liegenden Klasse zurückgibt.

 
Wir können auch eine innere Klasse definieren, um den Klassennamen der einschließenden Klasse zu erhalten, wie unten gezeigt:

3. Stack-Trace verwenden

Wir können ein Array von Stack-Trace-Elementen erhalten, die den Stack-Trace zu einem Throwable darstellen. Das erste Element des zurückgegebenen Stack-Trace-Arrays enthält den Stack-Frame der aktuellen Methode (der auch Klasseninformationen speichert).

 
Der Stack-Trace eines aktuellen Threads gibt auch ein Array von Stack-Trace-Elementen zurück, die den Stack-Dump dieses Threads darstellen. Wir finden den Stackrahmen der aktuellen Methode (der Klasseninformationen enthält) bei Index 1 des Arrays.

 
Bitte beachten Sie, dass diese Methode nicht sicher verwendet werden kann, da einige virtuelle Maschinen unter bestimmten Umständen einen oder mehrere Stack-Frames aus dem Stack-Trace auslassen können.

Das ist alles über checking Klassennamen in Java.

Bewerte diese Nachricht

Durchschnittliche Bewertung 5/5. Stimmenzahl: 8

Bisher keine Stimmen! Seien Sie der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass dieser Beitrag für Sie nicht hilfreich war!

Sagen Sie uns, wie wir diesen Beitrag verbessern können?




Danke fürs Lesen.

Bitte nutzen Sie unsere Online-Compiler um Code in Kommentaren mit C, C++, Java, Python, JavaScript, C#, PHP und vielen weiteren gängigen Programmiersprachen zu posten.

Wie wir? Empfehlen Sie uns Ihren Freunden und helfen Sie uns zu wachsen. Viel Spaß beim Codieren :)



Abonnieren
Benachrichtigen von
guest
0 Kommentare
Inline-Feedbacks
Alle Kommentare anzeigen
Folgen Sie diesem Link NICHT, sonst werden Sie von der Seite ausgeschlossen!