бросить список в коллекцию - PullRequest
25 голосов
/ 19 марта 2010

у меня есть немного пб. Я хочу создать список в коллекцию в java

Collection<T> collection = new Collection<T>(mylList); 

но у меня есть эта ошибка

Невозможно создать экземпляр типа Collection

Ответы [ 5 ]

55 голосов
/ 19 марта 2010

List<T> уже реализует Collection<T> - зачем вам создавать новую?

Collection<T> collection = myList;

Сообщение об ошибке абсолютно верно - вы не можете напрямую создать экземпляр интерфейса. Если вы хотите создать копию существующего списка, вы можете использовать что-то вроде:

Collection<T> collection = new ArrayList<T>(myList);
2 голосов
/ 19 марта 2010

Кастинг никогда не нуждается в new:

Collection<T> collection = myList;

Вы даже не делаете явное приведение, потому что Collection - это супер-тип List, поэтому он будет работать так же, как это.

1 голос
/ 07 августа 2017

Существует несколько решений для преобразования списка в коллекцию

Решение 1

List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;

Решение 2

private static final Collection<String> c = new ArrayList<String>(
                                                Arrays.asList("a", "b", "c"));

Решение 3

private static final Collection<Contact> = new ArrayList<Contact>(
                       Arrays.asList(new Contact("text1", "name1")
                                     new Contact("text2", "name2")));

Решение 4

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
0 голосов
/ 27 августа 2018

Первая коллекция - это класс Interface, и вы не можете создать его экземпляр. API коллекции

Список Ver APi также является классом интерфейса.

Может быть и так

List list = Collections.synchronizedList(new ArrayList(...)); 

ver введите описание ссылки здесь

Collection collection= Collections.synchronizedList(new ArrayList(...)); 
0 голосов
/ 19 марта 2010

Не зная вашего кода, довольно сложно ответить на ваш вопрос, но, основываясь на всей информации, я считаю, что проблема заключается в том, что вы пытаетесь использовать Collections.sort для передачи объекта, определенного как Collection, и sort не поддерживаю это.

Первый вопрос. Почему клиент определяется так в общем? Почему это не Список, Карта, Набор или что-то более конкретное?

Если бы клиент был определен как список, карта или набор, у вас не было бы этой проблемы, так как тогда вы могли бы напрямую использовать Collections.sort (клиент).

НТН

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