2013-04-29 75 views
6

,我發現前幾天一個代碼在Java中使用的關鍵字的背景下,例如:Java類關鍵字

MyConcreteClass.class.AMethod(); 

我一直試圖做一個JFrame中,例如:

JFrame.class.getName(); 

而且工作,但...我無法弄清楚/在互聯網上找到這個關鍵字在這種情況下意味着什麼。我只用它來聲明類。

任何人都可以解釋我什麼意味着在這種情況下?

謝謝,

回答

6

在這種情況下,class不是關鍵字,它是表示其相應實例Class的類的特殊屬性(「類文字」)。例如,要獲得StringClass對象,我們執行此操作:String.class。返回的值是代表String的類的Class的實例(請注意使用大寫和小寫)。

這裏.class用於實際的類,以獲得相同的結果,使用它的一個實例我們使用getclass()方法。繼續我們的示例,此片段返回Class的相同實例,對應於String"".getClass()

爲了圓這個想法 - 這個片段將始終返回true,與相應的實例的任何類,你要測試:

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

在您的示例中使用class關鍵字將爲您提供Class<JFrame>類型的對象實例。

1

當你做JFrame.class你得到一個Class<JFrame>實例,因此你可以撥打getName方法。

類文字允許您訪問有關該類的信息。