Java:如果将类文字应用于基本类型,则生成什么类型​​的对象?

时间:2015-02-24 04:27:08

标签: java class generics primitive-types

据我所知,Java中有一个称为类文字的功能,它应用于类型名称,使JVM生成类型为Class<?>的对象,这是一个泛型类。更具体地说,以下结构是正确的:

Class<type> o = type.class;

其中type是可供使用的任何类型的名称。

令我困惑的是两个事实的结合。第一,类文字也可以与原始类型一起使用,即像int.class这样的结构是完全有效的。第二,不允许使用原始类型来参数化泛型,这意味着像Class<int> c;这样的构造不会编译。

鉴于上述所有内容,Class语句中哪个类型用作Class<?> c = int.class;类型参数?

谢谢!

1 个答案:

答案 0 :(得分:4)

这只是一个Class<Integer>

Class<Integer> o = int.class;

即使您使用了基本类型Class表示,它仍然是Class<Integer>

Class<Integer> o = Integer.TYPE;