我想制作一个程序,该程序从FileDialog获取一个.class(或一个.java文件)文件,条件是该类是通用类型,例如LinkedList<T>ArrayList<T>,或用户选择的任何数据结构。如果类不是泛型类型,我想抛出一个异常。为了进一步说明,我想测试一下

inputClassX instanceof ParameterizedType


但是因为我想测试任何可能不实现ParameterizedType的任意类,所以无法进行该测试。

我如何测试对象或Class是否为通用类型?

最佳答案

对于任意Class对象,您可以检查getTypeParameters返回的数组的长度,如果它的值非零,则表示该类具有通用类型参数:

System.out.println(String.class.getTypeParameters().length != 0); // false
System.out.println(List.class.getTypeParameters().length != 0); // true

10-07 19:33
查看更多