2013-04-29 9 views
6

ich vor ein paar Tagen einen Code in Java gefunden, die das Klasse Schlüsselwort im Kontext verwendet, zum Beispiel:Java-Klasse Stichwort

MyConcreteClass.class.AMethod(); 

Ich habe versucht, es in einem JFrame zu tun, zum Beispiel :

JFrame.class.getName(); 

Und das funktioniert, aber ... ich kann im Internet nicht heraus/finden, was dieses Schlüsselwort bedeutet in diesem Zusammenhang. Ich habe es nur benutzt, um Klassen zu deklarieren.

Kann mir jemand erklären, was Klasse bedeutet in diesem Zusammenhang?

Danke,

Antwort

6

In diesem Kontext ist class kein Schlüsselwort, es ist ein spezielles Attribut (ein "Klassenliteral") einer Klasse, die die entsprechende Instanz von Class angibt. Um beispielsweise das Objekt Class von String zu erhalten, tun wir dies: String.class. Der zurückgegebene Wert ist die Instanz Class, die die Klasse String darstellt (beachten Sie die Verwendung von Groß- und Kleinbuchstaben).

Hier .class wird für die tatsächliche Klasse verwendet, um das gleiche Ergebnis mit einer seiner Instanzen zu erhalten, verwenden wir die getclass() Methode. In diesem Beispiel gibt dieser Ausschnitt dieselbe Instanz von Class zurück, die einer String: "".getClass() entspricht.

die Idee Zum Abschluss - das Snippet wird immer true zurückkehren, für jede Klasse mit einem entsprechenden Beispiel möchten Sie Test:

"".getClass().equals(String.class) 
2

In diesem Zusammenhang ist class Teil eines class literal zum Class Objekt verweist diese Klasse darstellt.

1

Mit dem Schlüsselwort class in Ihrem Beispiel erhalten Sie eine Objektinstanz des Typs Class<JFrame>.

1

Wenn Sie das tun JFrame.class Sie eine Class<JFrame> Instanz erhalten, so dass Sie kann die getName Methode aufrufen.

Das Klassenliteral ermöglicht Ihnen den Zugriff auf Informationen über die betreffende Klasse.