【发布时间】:2011-05-19 23:33:49
【问题描述】:
注意:纯粹出于好奇,并非针对任何实际用例。
我想知道是否有办法用有效的类型参数声明 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<?>> 不一样
【问题讨论】:
标签: java generics nested-generics