这就是我所拥有的:
class Class1 <T>
{
public void foo()
{
ParameterizedType parameterizedType = (ParameterizedType)getClass().getGenericSuperclass();
Class<T> type = (Class<T>) parameterizedType.getActualTypeArguments()[0];
System.out.println(type);
}
}
class Class2 <G>
{
public Class2 ()
{
Class1<G> class1 = new Class1<G>();
}
}
但是当我调用class1.foo()时,我得到的是超类,而不是参数。
如果我这样做
Class1<String> class1 = new Class1<String>();
然后在Class1中调用class1.foo(),我得到String。
如何修复使用泛型类型Class2实例化Class1?
答案 0 :(得分:0)
你做不到。在运行时,Class2
不知道它的泛型类型参数是什么。