java Vector:添加对象时的警告

时间:2010-06-22 02:32:51

标签: java collections

当我将一个String对象添加到向量中时,会出现以下警告。为什么?

  

TestCollectionsMain.java:14:警告:[未选中]未经检查的调用将(E)添加为   原始类型java.util.Vector的成员                   vec.add( “M”);

3 个答案:

答案 0 :(得分:1)

这是因为您没有使用Generics声明您的Vector。

试试这个:

 List<String> vec = new ArrayList<String>();
 vec.add("M");

答案 1 :(得分:1)

您可以声明

Vector<String> vec = new Vector<String>();

或,使用

@SuppressWarnings("unchecked") 
如果您真的想要这样做,那么

注释位于您方法的顶部。 : - )

答案 2 :(得分:0)

从Java 1.5开始,建议您使用这些方法的泛型版本。

如果您坚持使用原始类型,则可以放心地忽略该警告。

顺便说一下,您可能应该使用ArrayList而不是Vector它会更快一些,并且基本相同。

这将运行,只需忽略警告。

public static void main( String [] args ) {
    Vector v = new Vector();
    v.add("M");
 }

这会更好:

public static void main( String [] args ) {
     List<String> v = new ArrayList<String>();
     v.add("M");
}

使用泛型为您带来两个好处。

1)帮助您在编译时检查,添加到集合的值是相同的类型。

2)帮助您在从集合中获取值时避免转换。

但是,这只是一个选项(没有编译器错误)如果你仍然想要使用非泛型版本,你可以自由地这样做,只是忽略异常,或者像jskggz所说,只需添加:< / p>

 @SuppressWarnings("unchecked") 
 public static void main(String[] args) {

对你的方法。