「class」方法/字段從哪裏來?我在API中找不到任何有關它的信息。Java - 「class」方法/字段從哪裏來?
代碼例如:
public class SomeClass{
public static void main(String[] args){
System.out.println(SomeClass.class);
}
}
輸出:類SomeClass的
「class」方法/字段從哪裏來?我在API中找不到任何有關它的信息。Java - 「class」方法/字段從哪裏來?
代碼例如:
public class SomeClass{
public static void main(String[] args){
System.out.println(SomeClass.class);
}
}
輸出:類SomeClass的
這是 「編譯器魔術」 稱爲類字面:
類literal是表達由以下組成的類,接口,數組或原始類型的名稱,或僞類型void,後跟
'.'
和令牌class
(JLS 15.8.2)
換句話說,雖然類沒有靜態成員稱爲class
,編譯器的行爲就好像他們這麼做,將引用根據需要相應Class
對象。
不完全如此。這是從Java API:
也可以得到Class對象使用類文字命名類型(或 無效)。請參閱Java™語言 規範的Section 15.8.2。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
所以更多的信息,你應該只是看看Section 15.8.2 of The Java™ Language Specification。
它在語言中定義 – litelite
你在說什麼方法? – talex
class是一個保留關鍵字,因此它不能是字段或方法的名稱。所以編譯器知道如何處理它。 –