【问题标题】:Java: Unable to fix unchecked conversion required java.util.Collection<? extends java.lang.String>Java:无法修复所需的未经检查的转换 java.util.Collection<?扩展 java.lang.String>
【发布时间】:2013-08-16 11:13:49
【问题描述】:

我有一个字符串向量,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”下方。

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

【问题讨论】:

  • 集合也应该使用泛型,new LinkedHashSet(oldV)
  • 摩根诺:谢谢!有效,现在有意义。

标签: java generics vector linkedhashset


【解决方案1】:

如果oldV 被声明为Vector&lt;String&gt;,只需使用“LinkedHashSet”的参数化版本:

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

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

@SuppressWarnings("unchecked")
Vector<String> newV = new Vector<String>( new LinkedHashSet(oldV) );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多