Подтвердить что ты не робот

Бросить список в коллекцию

У меня есть pb. Я хочу передать список в коллекцию в java

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

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

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

4b9b3361

Ответ 1

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

Collection<T> collection = myList;

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

Collection<T> collection = new ArrayList<T>(myList);

Ответ 2

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

Collection<T> collection = myList;

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

Ответ 3

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

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

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

НТН

Ответ 4

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

Решение 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);