参数为ArrayList <T>
我怎样才能得到 T 的类名
public static <T extends Object> void test(ArrayList<T> list){
T temp;
Class classType=temp.getClass();
System.out.println(classType.getName());
}
编译会失败:局部变量temp可能还没有初始化。
但是如何获取模板类的className。
最佳答案
您无法获取通用类型。这是由于泛型在 Java 中的实现方式(使用类型删除)。基本上,您只能使用泛型来捕获类型错误在编译时。
您的代码无法编译,因为您正试图调用 getClass
在尚未初始化的局部变量上。
你可以做的是:
- 传入
Class<T>
除了列表之外的参数,用于告诉方法有关要使用的类型 - 或者查看列表的第一个元素(如果存在)并相信它的运行时类型具有足够的代表性(它可能没有)
关于java - 参数是 ArrayList<T> 以及如何获取 T 的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753484/