2011-04-28 102 views
0
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:中的addAll(java.util.Collection中,T ...)在java.util.Collections中不能应用于(java.util.List,java.util.List)获取有关Collections.addAll编译错误

为什么这么说?

+0

因为这不是你如何使用'Collections.addAll()'。你的IDE没有告诉你这个吗? (您正在使用IDE,对不对?) – BoltClock 2011-04-28 18:42:52

回答

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()); 

使用列表界面的addAll:

v.addAll(a); 
+0

谢谢。有效。 – Sid 2011-04-28 18:53:36

1

That form of addAll不需要两个Collection s,它需要一个Collection,然后将该集合中的多个相同类型的项目添加到它。

你只是想v.addAll(a),在Collection本身的实例方法。

+0

谢谢。有效。 – Sid 2011-04-28 18:53:29