java - 如何从Java中的Vector<T>获取T类[重复]

Posted

技术标签:

【中文标题】java - 如何从Java中的Vector<T>获取T类[重复]【英文标题】:How to get class of T from Vector<T> in java [duplicate] 【发布时间】:2013-05-13 18:33:12 【问题描述】:

我写了这段代码:

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

我想写T的类名,但是看不到。我该怎么做?

【问题讨论】:

【参考方案1】:

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

您可以做的是查询向量元素的类型。

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

另请参阅此问题的答案: Java generics - type erasure - when and what happens

换句话说:

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

相当于:

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

在运行时,但通过一些编译时检查您要转换为的类型。

【讨论】:

好的,我明白了 :) 非常感谢

以上是关于java - 如何从Java中的Vector<T>获取T类[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串数组中的所有项目添加到 Java 中的向量中?

C++中如何对vector删除元素

将 MatofKeypoint 从 Java 传递到 c++ 作为 vector<Keypoint> - opencv

利用c++中的vector创建动态二维数组

java.util.vector中的vector的详细用法

JAVA中Vector怎样存放一个动态的二维数组