我有一个抽象的测试类,它有两个类型参数。我需要在某个时候创建其中一个类型的实例,所以我定义了一个抽象方法来获取所需的类。
I doc = getInputDocumentClass().newInstance();
如何在具体的子类中实现抽象方法Class<T1<T2>> getInputDocumentClass()
?
要返回T1的类文字是不够的:
@Override
public Class<T1<T2>> getInputDocumentClass() {
return T1.class;
}
cannot convert from Class<T1> to Class<T1<T2>>
由于类型擦除,没有参数化的类文字。
那么在这种情况下如何满足编译器呢?
答案 0 :(得分:1)
@SuppressWarnings("unchecked")
public Class<List<Integer>> getInputDocumentClass() {
return (Class)List.class;
}