注意:纯粹出于好奇,而不是针对任何实际用例。
我想知道是否有办法Class
Class
用有效的类型参数声明对象:
Class cc1 = Class.class; //raw type
Class<Class> cc2 = Class.class; //now parameter is raw type
Class<Class<?>> cc3 = Class.class; //compile error: inconvertible types
如果Class
和Class<?>
是可互换的,为什么是Class<Class>
而Class<Class<?>>
不是?
编辑:这个问题可以概括为嵌套原始类型参数的问题。例如:
ArrayList<ArrayList<?>> lst = new ArrayList<ArrayList>(); //same compile error
EDIT2:我应该稍微改一下这个问题:我知道
Class<?> c = Class.class;
是有效的,但我想知道为什么Class<Class>
不一样Class<Class<?>>