【发布时间】:2010-11-07 12:12:24
【问题描述】:
当你这样做时:
MyClass.class.someMethod()
“类”字段究竟是什么?我在 API 文档中找不到它。是继承的静态字段吗?
我认为保留关键字不允许作为实体名称。
【问题讨论】:
-
另一篇相关帖子 - Java “.class” property - C# equivalent
标签: java
当你这样做时:
MyClass.class.someMethod()
“类”字段究竟是什么?我在 API 文档中找不到它。是继承的静态字段吗?
我认为保留关键字不允许作为实体名称。
【问题讨论】:
标签: java
请阅读:
类字面量是一个表达式,由类、接口、数组或原始类型或伪类型 void 的名称组成,后跟一个 `.'和令牌类。类文字的类型,C.Class,其中 C 是类、接口或数组类型的名称,是 Class。如果 p 是原始类型的名称,则设 B 是装箱转换后的 p 类型表达式的类型(第 5.1.7 节)。那么p.class的类型就是Class。 void.class 的类型是 Class。
【讨论】:
.class 实际上并不是一个字段。您可以将其视为更像是文件扩展名的“扩展名”。它是用于区分类对象而不是类的实例的标记。
【讨论】:
MyClass 不是一个对象的名称,它是一个类名,所以这实际上是一种特殊的语法,它为命名类检索相应的Class<MyClass> 对象。它是一种语言特性,而不是 MyClass 类的真实属性。
【讨论】:
list 类型为 List<String> 的变量,list.class 将返回 Class