бросьте Список к Набору

у меня есть некоторый свинец. Я хочу бросить Список к Набору в Java

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

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

Не может инстанцировать Набора типа

25
задан Mercer 7 August 2017 в 14:22
поделиться

3 ответа

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

Collection<T> collection = myList;

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

Collection<T> collection = new ArrayList<T>(myList);
55
ответ дан 28 November 2019 в 18:31
поделиться

Приведение никогда не требует нового :

Collection<T> collection = myList;

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

2
ответ дан 28 November 2019 в 18:31
поделиться

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

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

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

HTH

0
ответ дан 28 November 2019 в 18:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: