2013-04-29 11 views
6

Javaクラス・キーワード

JFrame.class.getName(); 

そして、それはしかし、作品...私はこのキーワードがそのコンテキストで何を意味するのか、インターネット上で見つける/把握することはできません。私はそれを使ってクラスを宣言しました。

誰でも私に何を説明できますかクラスはこの意味での意味ですか?

おかげで、この文脈において

答えて

6

このコンテキストでは、classはキーワードではなく、対応するインスタンスClassを示すクラスの特別な属性(「クラスリテラル」)です。たとえば、StringClassオブジェクトを取得するには、String.classを実行します。返される値はStringのクラスを表すClassのインスタンスです(大文字と小文字の区別に注意してください)。

.classは実際のクラスで使用され、そのインスタンスの1つを使用して同じ結果を得るには、getclass()メソッドを使用します。引き続きこの例ではString"".getClass()に対応するClassの同じインスタンスを返します。

アイデアを丸める - このスニペットは常にあなたがテストしたい対応するインスタンスを持つ任意のクラスのために、trueを返します。

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

classは、そのクラスを表すClassオブジェクトを参照class literalの一部です。

1

例でclassキーワードを使用すると、Class<JFrame>タイプのオブジェクトインスタンスが得られます。

1

あなたがJFrame.classを行うと、あなたがClass<JFrame>インスタンスを取得するので、あなたのしていますgetNameメソッドを呼び出すことができます。

クラスリテラルでは、問題のクラスに関する情報にアクセスできます。