也许这不是一个大问题,但我无法弄清楚。有没有一种方法可以检查是否将类定义为泛型类型。我不想定义此类的实例,我只是想以某种方式知道该类是定义为普通类还是泛型类型。
这将是第一类,其类型为泛型
public class MyGenericClass<T, G> {
public void someMethod(T firstParam, G secondParam){
// do something
}
}
这将是第二个普通的班级
public class AnotherClass {
public void someMethod(){
// do something
}
}
我想要一种找出结果的方法
isGenericType(MyGenericClass.class) --> true
isGenericType(AnotherClass.class) --> false
答案 0 :(得分:1)
在Class<?> object
中,您可以检查cls.getTypeParameters()
。
从泛型类中获得TypeVariable
的非空数组。
从非泛型类获得一个空数组。
例如
java.util.List.class.getTypeParameters()
TypeVariable[1] { E }
String.class.getTypeParameters()
TypeVariable[0] {}