2017-07-28 71 views
1

“class”方法/字段从哪里来?我在API中找不到任何有关它的信息。Java - “class”方法/字段从哪里来?

代码例如:

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

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

输出:类SomeClass的

+0

它在语言中定义 – litelite

+0

你在说什么方法? – talex

+0

class是一个保留关键字,因此它不能是字段或方法的名称。所以编译器知道如何处理它。 –

回答

2

这是 “编译器魔术” 称为类字面

类literal是表达由以下组成的类,接口,数组或原始类型的名称,或伪类型void,后跟'.'和令牌classJLS 15.8.2)

换句话说,虽然类没有静态成员称为class,编译器的行为就好像他们这么做,将引用根据需要相应Class对象。