使用其实例获取类的泛型类型参数的数量?

时间:2018-02-23 07:47:29

标签: java generics type-erasure

是否可以使用其实例获取类在Java中具有/接受的类型参数的数量?例如,

Map<String, Integer> s = new HashMap<>();
int numParams = getNumOfTypeParameters(s); // Should return 2

我知道由于类型擦除我们无法获得这些参数的类型,但是我们还能得到参数的数量吗?

1 个答案:

答案 0 :(得分:1)

就像

一样简单
System.out.println(Map.class.getTypeParameters().length); // 2

System.out.println(Class.class.getTypeParameters().length); // 1

System.out.println(Object.class.getTypeParameters().length); // 0

只需查看java.lang.Class的文档,然后找到this