当我将一个String对象添加到向量中时,会出现以下警告。为什么?
TestCollectionsMain.java:14:警告:[未选中]未经检查的调用将(E)添加为 原始类型java.util.Vector的成员 vec.add( “M”);
答案 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) {
对你的方法。