1

我有一个字符串向量oldV,并且想要第二个向量,它是相同的但已删除所有重复项。以下是有效的,因为它编译并导致 Vector 中删除了重复项:

Vector<String> newV = new Vector<String>( new LinkedHashSet(oldV) );

但是,它会生成两个未经检查的转换警告:

> warning: [unchecked] unchecked call to LinkedHashSet(java.util.Collection<? extends E>) as a member of the raw type java.util.LinkedHashSet

> warning: [unchecked] unchecked conversion
> found   : java.util.LinkedHashSet
> required: java.util.Collection<? extends java.lang.String>

在这两种情况下,^ 都直接位于“new LinkedHashSet”中的“new”下方。

我不知道如何解决这些警告。

4

1 回答 1

4

如果oldV声明为Vector<String>只使用“LinkedHashSet”的参数化版本:

Vector<String> newV = new Vector<String>( new LinkedHashSet<String>(oldV) )

@SuppressWarnings如果您只想摆脱警告,也可以使用注释:

@SuppressWarnings("unchecked")
Vector<String> newV = new Vector<String>( new LinkedHashSet(oldV) );
于 2013-08-16T11:17:12.163 回答