我这里有三个课程:
public class MyClass1<T, ID> {
@Getter
private static class IdHolder<ID> {
private ID id;
}
}
public class MyClass2<T> {
public MyClass2(Class<? extends T> type) {
}
public List<T> fetch() {
}
}
在 内部MyClass1
,我需要创建 的实例MyClass2
并调用该fetch()
方法:
List<IdHolder<ID>> previous = new MyClass2<IdHolder<ID>>(???).fetch();
如果我使用这样的原始类型:
List<IdHolder> previous = new MyClass2<>(IdHolder.class).fetch();
它确实有效,但随后 IntelliJ 抱怨我使用原始类型(显然)。
我努力了:
TypeReference<IdHolder<ID>> t = new TypeReference<IdHolder<ID>>() {};
我可以输入什么???
来获取类类型,IdHolder<ID>
或者由于类型擦除而无法获取类类型,并且我必须使用原始类型?我认为这就是 的全部要点TypeReference
。