当你这样做时:
MyClass.class.someMethod()
“班级”字段究竟是什么?我在API文档中找不到它。它是一个继承的静态字段吗?
我认为保留关键字不允许作为实体名称。
答案 0 :(得分:3)
请阅读:
类文字是一个表达式,由类,接口,数组或基本类型的名称或伪类型void组成,后跟一个“。”和令牌类。类文字的类型,C.Class,其中C是类,接口或数组类型的名称,是Class。如果p是基本类型的名称,则让B为装箱转换后的类型p的类型(第5.1.7节)。然后p.class的类型是Class。 void.class的类型是Class。
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.8.2
答案 1 :(得分:2)
.class
实际上不是一个字段。您可以将其视为文件扩展名的“扩展名”。它是用于区分类对象而不是类的实例的标记。
答案 2 :(得分:1)
MyClass
不是对象的名称,它是类名,因此这实际上是特殊语法,用于检索指定类的相应Class<MyClass>
对象。它是一种语言功能,而不是MyClass
类的真实属性。
答案 3 :(得分:0)