检查类是否为通用类型

时间:2020-06-04 08:02:43

标签: java generics reflection

也许这不是一个大问题,但我无法弄清楚。有没有一种方法可以检查是否将类定义为泛型类型。我不想定义此类的实例,我只是想以某种方式知道该类是定义为普通类还是泛型类型。

这将是第一类,其类型为泛型

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

1 个答案:

答案 0 :(得分:1)

Class<?> object中,您可以检查cls.getTypeParameters()

从泛型类中获得TypeVariable的非空数组。

从非泛型类获得一个空数组。

例如

java.util.List.class.getTypeParameters()
TypeVariable[1] { E }
String.class.getTypeParameters()
TypeVariable[0] {}
相关问题