" class"方法/字段来自哪里?我在API中找不到任何有关它的信息。
代码示例:
public class SomeClass{
public static void main(String[] args){
System.out.println(SomeClass.class);
}
}
输出:class SomeClass
答案 0 :(得分:2)
这是“编译魔术”,称为 Class Literals :
类文字是一个表达式,由类,接口,数组或基本类型的名称或伪类型void组成,后跟
'.'
和标记class
({ {3}} 15.8.2)
换句话说,尽管类没有名为class
的静态成员,但编译器的行为就像它们那样,根据需要插入对应的Class
对象的引用。
答案 1 :(得分:0)
不完全正确。这来自Java API:
也可以获取命名类型的Class对象(或者 void)使用类文字。请参阅The Java™Language的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。