在Collections.addAll上获取编译错误

Sid*_*Sid 0 java compiler-errors

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

  }
}
Run Code Online (Sandbox Code Playgroud)

错误:/home/compilerauto/sessions/141/MyClass.java:10:java.util.Collections中的addAll(java.util.Collection,T ...)无法应用于(java.util.List,java.util) .LIST)

为什么这样?

jus*_*tkt 5

addAll的方法签名是:

public static <T> boolean addAll(Collection<? super T> c, T... elements)
Run Code Online (Sandbox Code Playgroud)

而不是

public static <T> boolean addAll(Collection<? super T> c, Collection<? super T> elements)
Run Code Online (Sandbox Code Playgroud)

既然T... elements可以表示为T[] elements,请尝试:

Collections.addAll(v,a.toArray());
Run Code Online (Sandbox Code Playgroud)

或者使用List接口的addAll:

v.addAll(a);
Run Code Online (Sandbox Code Playgroud)