我有一个这样的课程:
public class SubClass <T> extends SuperClass<Collection<T>>{
public Class<T> getInner() {
// What goes here?
}
}
SuperClass只是一个泛型类。我的问题是如何获得对Class对象的访问权以便返回它?由于类型擦除,我似乎无法做到这一点。
任何帮助?
答案 0 :(得分:4)
确切地说,类型擦除意味着您必须明确地执行此操作。
基本上,您需要SubClass
在构造函数中将Class<T>
作为参数,然后挂起。如果T
实际上是(例如)List<String>
,那么你仍然可以在那里遇到类型擦除问题。有关此问题和解决方法的详细信息,请参阅Neal Gafter's blog,并了解实施的Guice 2.0 TypeLiteral
class。