泛型类型T BUT的类实例,它扩展了泛型的超类

时间:2014-09-11 13:10:42

标签: java generics inheritance

我使用this method来检索我的通用类型,没问题...... 到现在为止
现在,我有这种结构:

 public class Toto<T> extends OtherOne<X,Y,Z> {...}

当我使用

((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];

 它返回我的OtherOne类的Class<X>类型,而不是Class<T>

有没有人遇到过这个问题?无论我尝试什么都不起作用T_T,我不想使用this solution将类作为我的构造函数的参数

1 个答案:

答案 0 :(得分:-1)

为了了解T是什么,必须在子类中捕获它。例如:

public class StringToto extends Toto<String> {}
Class<?> t = (Class<?>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];

这是因为类型只有在类型定义的一部分时才能在运行时检索。