Java Generics:获取一个Class <Collection >?
我在使用generics时遇到了麻烦。 给出以下示例:
class A { public A(Class myType){ } } class B extends A<Collection> { public B(Class myEType){ super(???); } }
什么 ??? 应该 ? Collection.class
不起作用…… Collection.class
也没有。 (Class<Collection>)Collection.class
不起作用……
如果有一个javagenerics大师,我需要帮助……:/
由于类型擦除,除了Collection.class
之外,你不可能得到Class
。 您将不得不使用不安全的强制转换将Collection.class
强制转换为Class
– 具体来说, (Class
将完成这项工作。
class A { public A(Class myType){ } } class B extends A> { public B(Class> myEType){ // <-- this is the changed line super(myEType); } }
尝试这个:
class A { public A(Class> myType){ } } class B extends A> { public B(Class myEType){ super(myEType); } }
如果满意,请将此答案标记为正确。