我正在使用Spring启动,并且我正在进行反射以提取我的包中的类,结束于&#34; Repository&#34;以及所有声明为MyGenericClass<T,R>
的字段。我的问题是我无法从ClassA
中提取ClassB
和myField
public class ContainerRepository{
private MyGenericClass<ClassA, ClassB> myField;}
我希望针对以下代码运行相同的代码:
public class ProcessRepository{
private MyGenericClass<ClassC, ClassD> anotherField;}
从ClassC
ClassD
和anotherField
答案 0 :(得分:2)
简单回答,您无法使用Reflection在运行时推断泛型。但是,您可以轻松地将字段类型标记为实例变量(非常黑客但不确定是否有帮助)。
public class MyGenericClass<M, N> {
private M mType;
private N nType;
MyGenericClass (M m, N n){
this.mType = m;
this.nType = n;
}
public Class<?> getMType(){
return this.mType.getClass();
}
public Class<?> getNType(){
return this.nType.getClass();
}
}