我想制作一个程序,该程序从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