据我所知,Java中有一个称为类文字的功能,它应用于类型名称,使JVM生成类型为Class<?>
的对象,这是一个泛型类。更具体地说,以下结构是正确的:
Class<type> o = type.class;
其中type
是可供使用的任何类型的名称。
令我困惑的是两个事实的结合。第一,类文字也可以与原始类型一起使用,即像int.class
这样的结构是完全有效的。第二,不允许使用原始类型来参数化泛型,这意味着像Class<int> c;
这样的构造不会编译。
鉴于上述所有内容,Class
语句中哪个类型用作Class<?> c = int.class;
类型参数?
谢谢!
答案 0 :(得分:4)
这只是一个Class<Integer>
。
Class<Integer> o = int.class;
即使您使用了基本类型Class表示,它仍然是Class<Integer>
:
Class<Integer> o = Integer.TYPE;