我希望制作一个程序,该程序来自FileDialog
获取.class
(或可能是.java
文件)文件,条件是该类是泛型类型,例如LinkedList<T>
,ArrayList<T>
或用户选择的任何数据结构。如果类不是泛型类型,我想抛出异常。有关进一步说明,我想测试是否
inputClassX instanceof ParameterizedType
但是因为我想测试任何可能没有实现ParameterizedType
的任意类,我不能做那个测试。
如何测试对象或Class
是否为泛型类型?
答案 0 :(得分:2)
对于任意Class
对象,您可以检查getTypeParameters
返回的数组的长度,如果它不为零,则表示该类具有泛型类型参数:
System.out.println(String.class.getTypeParameters().length != 0); // false
System.out.println(List.class.getTypeParameters().length != 0); // true