6

在 Java 中,对于像int.class. auto boxing甚至在 Java中引入功能之前就允许这样做吗?我们得到的对象 int.class实际上包含什么?为什么有效?

4

2 回答 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 回答