У меня есть pb. Я хочу передать список в коллекцию в java
Collection<T> collection = new Collection<T>(mylList);
но у меня есть эта ошибка
Невозможно создать экземпляр типа Collection
У меня есть pb. Я хочу передать список в коллекцию в java
Collection<T> collection = new Collection<T>(mylList);
но у меня есть эта ошибка
Невозможно создать экземпляр типа Collection
List<T>
уже реализует Collection<T>
- зачем вам нужно создавать новый?
Collection<T> collection = myList;
Сообщение об ошибке абсолютно правильно - вы не можете напрямую создавать интерфейс. Если вы хотите создать копию существующего списка, вы можете использовать что-то вроде:
Collection<T> collection = new ArrayList<T>(myList);
Литье никогда не нуждается в new
:
Collection<T> collection = myList;
Вы даже не делаете бросок явным, потому что Collection
является супертипом List
, поэтому он будет работать именно так.
Не зная ваш код, немного сложно ответить на ваш вопрос, но, основываясь на всей информации здесь, я считаю, что проблема заключается в том, что вы пытаетесь использовать передачу Collections.sort в объекте, определенном как Collection, и sort doesn Не поддерживайте это.
Первый вопрос. Почему клиент определяется так в целом? Почему это не список, карта, набор или что-то более конкретное?
Если клиент был определен как список, карта или набор, у вас не было бы этой проблемы, так как тогда вы могли бы напрямую использовать Collections.sort(client).
НТН
Существует множество решений для преобразования списка в коллекцию
Решение 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);