当前位置: 代码迷 >> java >> 如何获得在一个类中声明的类型参数的数量?
  详细解决方案

如何获得在一个类中声明的类型参数的数量?

热度:55   发布时间:2023-07-31 13:42:33.0

我想获取给定类声明的类型参数的数量。 例如,类java.util.List声明一个类型参数。 java.util.Map声明两个。 并且java.util.function.BiFunction声明了三个。

理想情况下,我将有一个接受Class对象并返回该计数的方法。 就像是

SomeUtility.getCountOfTypeParameters(java.util.List.class);

注意:声明例如List<String>类型的变量时,我对提供的类型参数不感兴趣。

Class类提供了一个方法,

返回TypeVariable对象的数组,这些对象按声明顺序表示此GenericDeclaration对象表示的泛型声明所声明的类型变量。 如果基础泛型声明未声明任何类型变量,则返回长度为0的数组。

您可以只检查返回数组的长度。

public static void main(String[] args) {
    Class<Map> clazz = Map.class;
    TypeVariable<Class<Map>>[] parameters = clazz.getTypeParameters();
    System.out.println(parameters.length);
}

版画

2
  相关解决方案