在 Java 中,像 int.class
这样的原语有一个类文字是有效的。在 Java 中引入 auto boxing
功能之前是否允许这样做?我们从 int.class
中得到的对象实际上包含什么?为什么有效?
最佳答案
int
不是类,所以 int.class
没有意义。
原因是他们很便宜,使用一个Class
来表示所有类型。因此,例如,Method.getReturnType()
返回一个 Class
,它实际上可以代表一个类、原始类型、数组,甚至是 void。
在泛型出现之前,这很好,因为没有太多种类的类型。在泛型之后,事情变得非常困惑,新的 Type
层次结构就更没有意义了,因为它合并了旧的困惑的 Class
;结果,Types
树看起来与语言规范中的类型树完全不同。
关于java - Java 中的 int.class 包含什么?为什么它甚至有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14943348/