Was bedeutet .class in Java?
Was bedeutet .class
bedeuten in Java? Wenn ich zum Beispiel erstellt eine Klasse namens Print
. Was bedeutet Print.class
zurück?
Kommentar zu dem Problem
Ich fürchte, dass ich nicht vollständig verstehen, was Sie gefragt haben. Wenn Sie könnten, etwas näher, jemand könnte in der Lage sein, um Ihnen weitere nützliche Informationen
Dies sicherlich sieht aus wie eine echte Frage für mich. Ich war gerade diese Frage mir selbst und fand mich hier, nach einer schnellen Google-Suche. Ich denke, ich sollte nicht die Mühe gemacht, wenn ich gewußt hätte, dass meine Frage war nicht echt!
Außerdem denke ich, wegen der Ungeschicklichkeit des bestimmten such-string, es ist etwas geschrieben oder auffindbar über diese Frage. Andere als die API-docs im Zusammenhang mit oben, ich habe nie gesehen, diese Art der notation erwähnt, anderswo (obwohl Sie oft zu sehen in der Reflexion).
@MadProgrammer der OP ist die Frage nach der
.class
- syntax verwendet werden, die nur zufällig mit der .class
mit dem Namen der Erweiterung. InformationsquelleAutor der Frage Quinn Wei | 2013-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim schreiben
.class
nach ein Klasse name, er bezieht sich auf die Klasse literal -java.lang.Class
- Objekt, das Informationen dar, die über Klasse.Zum Beispiel, wenn Ihre Klasse
Print
, dannPrint.class
ist ein Objekt, das die Klasse darstellt, diePrint
auf Laufzeit. Es ist das gleiche Objekt, das zurückgegeben wird, durch diegetClass()
Methode von (direkten) Instanzen derPrint
.InformationsquelleAutor der Antwort Javier
.Klasse wird verwendet, wenn es nicht eine Instanz der Klasse zur Verfügung.
.getClass() wird verwendet, wenn es eine Instanz der Klasse zur Verfügung.
Objekt.getClass() liefert die Klasse des Objektes aus. Zum Beispiel:
Dieser Ausgabe wird
Dies ist die Klasse des string-Objekts 🙂
InformationsquelleAutor der Antwort christopher
Wenn eine Instanz eines Objekts verfügbar ist, dann ist der einfachste Weg, um seiner Klasse zum aufrufen
Object.getClass()
Den
.class
SyntaxOb die Art vorhanden ist, aber es gibt keine Instanz, dann ist es möglich, um eine Klasse durch Anhängen
.class
auf den Namen von dem Typ. Dies ist auch der einfachste Weg, um die Klasse für einen primitiven Typ.Finden Sie unter: docs.oracle.com über Klasse
InformationsquelleAutor der Antwort Andrew Xie
Nur um zu klären, dieser '.class' - Methode bezieht sich nicht auf die bytecode-Datei, die Sie sehen, nach dem kompilieren von java-code noch eine Verwirrung zwischen den Begriffen " Klasse vs. Objekt in der OOP-Theorie.
'.class' - Methode wird in Java für code-Reflexion. In der Regel können Sie sammeln von meta-Daten für Ihre Klasse, wie die voll qualifizierten Klassennamen, eine Liste von Konstanten, einer Liste von öffentlichen Feldern, etc, etc.
Überprüfen Sie diese links, (oben bereits erwähnt) alle details:
https://docs.oracle.com/javase/tutorial/reflect/class/classNew.html
https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html
Normalerweise Sie nicht Vorhaben, auf mit der Spiegelung sofort, wenn Sie mit dem Bau beginnen Ihr Projekt. Es ist etwas, das Sie wissen, Sie brauchen, nachdem Sie versuchen, zu verwalten bereits funktionierenden code. Viele Male Sie brauchen, es zu verwalten, mehrere Instanzen des Programms. Vielleicht möchten Sie zu identifizieren jeweiligen "Klonen", um zu bestimmen, wenn etwas, was bereits definiert ist, oder die Anzahl der Funktionen, oder einfach nur protokollieren Sie die details einer bestimmten Instanz der Klasse.
InformationsquelleAutor der Antwort Salvador Valencia
Wenn es keine Instanz verfügbar ist, dann
.class
syntax wird verwendet, um das entsprechende Class-Objekt für eine Klasse, sonst können Sie getClass () - Methode der Klasse object. Da es keine Instanz der primitiven Datentypen, die wir verwenden müssen,.class
syntax für primitive Datentypen.InformationsquelleAutor der Antwort Ranjeet
Ich denke der Schlüssel ist hier das Verständnis der Unterschied zwischen einer Klasse und einem Objekt. Ein Objekt ist eine Instanz einer Klasse. Aber in einer Objekt-orientierte Sprache, eine Klasse ist auch ein Objekt. So ruft
.class
wird der Verweis auf das Class-Objekt der Klasse, die dann manipuliert werden.InformationsquelleAutor der Antwort Xerxes
Einer Klasse literal ist ein Ausdruck, bestehend aus dem Namen der Klasse, interface, array oder ein primitiver Typ oder der pseudo-Typ void, gefolgt von einem '.' und die token-Klasse.
Eine der änderungen in JDK 5.0 ist, dass die Klasse java.lang.Class generisch ist,
java.lang.Class Class<T>
daher:Referenzen hier:
https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html
http://docs.oracle.com/javase/tutorial/extra/generics/literals.html
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.2
InformationsquelleAutor der Antwort PbxMan