Получение ошибки компиляции на Collections.addAll - PullRequest
0 голосов
/ 28 апреля 2011
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)

Почему так?

Ответы [ 2 ]

5 голосов
/ 28 апреля 2011

Подпись метода 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 интерфейса List:

v.addAll(a);
1 голос
/ 28 апреля 2011

Эта форма addAll не требует двух Collection с, для этого требуется один Collection, а затем несколько элементов одного типа из этой коллекции для добавления в нее.

Вы просто хотите v.addAll(a), метод экземпляра на самом Collection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...