у меня есть некоторый свинец. Я хочу бросить Список к Набору в Java
Collection<T> collection = new Collection<T>(mylList);
но у меня есть эта ошибка
Не может инстанцировать Набора типа
List
уже реализует Collection
- зачем вам создавать новый?
Collection<T> collection = myList;
Сообщение об ошибке абсолютно верно - вы не можете напрямую инстанцировать интерфейс. Если вы хотите создать копию существующего списка, вы можете использовать что-то вроде:
Collection<T> collection = new ArrayList<T>(myList);
Приведение никогда не требует нового
:
Collection<T> collection = myList;
Вы даже не делаете явное приведение, потому что Коллекция
является супертипом List
, так что он будет работать именно так.
Не зная вашего кода, сложно ответить на ваш вопрос, но, судя по всей информации здесь, я считаю, что проблема в том, что вы пытаетесь используйте Collections.sort, передавая объект, определенный как Collection, и sort этого не поддерживает.
Первый вопрос. Почему клиент определяется так широко? Почему это не список, карта, набор или что-то более конкретное?
Если бы клиент был определен как список, карта или набор, у вас не было бы этой проблемы, поскольку тогда вы могли бы напрямую использовать Collections.sort (клиент).
HTH