Java - " class"方法/字段来自哪里?

时间:2017-07-28 13:26:39

标签: java class methods field

" class"方法/字段来自哪里?我在API中找不到任何有关它的信息。

代码示例:

public class SomeClass{
    public static void main(String[] args){

        System.out.println(SomeClass.class);
    }    
}

输出:class SomeClass

2 个答案:

答案 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