Преобразование из ArrayList в коллекцию - PullRequest
6 голосов
/ 05 февраля 2012

У меня возникли трудности в этом преобразовании. Я не знаю, есть ли синтаксическая ошибка или это даже невозможно.

Мне нужно конвертировать из -

private static final List<Contact> CONTACTS = Arrays.asList(
        new Contact("text1", "name1"),
        new Contact("text2", "name2"),
        new Contact("text3", "name3"));

К -

Collection c = new ArrayList(Arrays.asList(--?--))

-? - -> (я не понимаю, что здесь происходит)

Делая это, я намерен избежать исключения UnsupportedOperationException. Любая помощь приветствуется, спасибо!

Привет всем спасибо, я понял! Это сработало -
Решение:

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);

Ответы [ 4 ]

10 голосов
/ 05 февраля 2012
public interface List
extends Collection

Вам не нужно ничего делать . Или вам нужна какая-то конкретная операция, которую ArrayList не поддерживает?

5 голосов
/ 05 февраля 2012

Вам не нужно ничего делать для преобразования, это работает:

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

Collection - это суперинтерфейс List, если объект реализует List, онтакже реализовать Collection.

2 голосов
/ 05 февраля 2012

Делать это работает:

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

Таким образом, я бы предложил что-то вроде:

private static final Collection<Contact> = new ArrayList<Contact>(
                       Arrays.asList(new Contact("text1", "name1")
                                     new Contact("text2", "name2")));
1 голос
/ 24 февраля 2012

Я обновляю его как ответ, который искал.Спасибо всем за ваши ответы!

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...