我在使用泛型时遇到了麻烦.给出以下示例:
class A<T> { public A(Class<T> myType){ } } class B<E> extends A<Collection<E>> { public B(Class<E> myEType){ super(???); } }
什么 ???应该 ?
Collection.class不起作用……
收集< E> .class既不.
(类< Collection< E>>)Collection.class不起作用……
如果有一个java泛型大师,我需要帮助……:/
解决方法
您不可能获得Class< Collection< E>>除了Collection.class,因为类型擦除.您必须使用不安全的强制转换将Collection.class强制转换为Class< Collection< E>> – 具体而言,(Class< Collection< E>>>)(Class)Collection.class将完成这项工作.