在 Java 中,对于像int.class
. auto boxing
甚至在 Java中引入功能之前就允许这样做吗?我们得到的对象 int.class
实际上包含什么?为什么有效?
问问题
112 次
2 回答
3
是的,它是反射的关键部分(例如,描述采用int
参数的方法)。还有一Void
堂课。
于 2013-02-18T18:54:30.907 回答
3
int
不是一个类,所以int.class
没有任何意义。
原因是它们变得便宜,并用一种Class
来代表所有类型。例如,Method.getReturnType()
返回 a Class
,它实际上可以表示一个类、一个基元、一个数组,甚至是 void。
在泛型之前,这还不错,因为没有太多种类的类型。在泛型之后,事情变得非常混乱,新的Type
层次结构变得更没有意义了,因为它包含了旧的混乱Class
;因此,树Types
看起来与语言规范中的类型树完全不同。
于 2013-02-18T18:58:46.727 回答