import java.util.*;
public class MyClass {
public static void main(String[] args) {
List<String> a = new ArrayList<String>();
a.add("1");
a.add("2");
a.add("3");
List<String> v = new Vector<String>();
Collections.addAll(v,a);
System.out.println(v);
}
}
错误: /home/compilerauto/sessions/141/MyClass.java:10:java.util.Collections中的addAll(java.util.Collection,T ...)无法应用于(java.util.List,java.util.List) )
为什么会这样?
答案 0 :(得分:5)
addAll的方法签名是:
public static <T> boolean addAll(Collection<? super T> c, T... elements)
而不是
public static <T> boolean addAll(Collection<? super T> c, Collection<? super T> elements)
由于T... elements
可以表示为T[] elements
,请尝试:
Collections.addAll(v,a.toArray());
或使用List界面的addAll:
v.addAll(a);
答案 1 :(得分:1)
That form of addAll
不需要两个Collection
,只需要一个Collection
,然后在该集合中添加相同类型的多个项目。
您只需要v.addAll(a)
,Collection
本身的实例方法。