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) Collection.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); } } 

如果满意,请将此答案标记为正确。