如何在java中从Vector获取T类<T>



我写了下面的代码:

public static <T> void getList(Vector<T> result){
    System.out.println(result.getClass().getName());
}

我想写T的类名,但是写不出来。我该怎么做呢?

据我所知你不能。Java泛型使用类型擦除,因此在运行时Vector<T>的行为就像没有任何模板参数的Vector一样。

只能查询vector对象的元素类型。

下面是类型擦除的简短描述:http://docs.oracle.com/javase/tutorial/java/generics/erasure.html

参见这个问题的答案:Java泛型-类型擦除-何时发生以及发生什么

换句话说:

void someMethod(Vector<T> values) {
    T value = values.get(0);
}

等价于:

void someMethod(Vector values) {
    T value = (T) values.get(0);
}

最新更新