Java ClassCastException при приведении списка обратно к его типу

1
List<Contact> contacts = dataManager().getContactsDao().getAll();

Когда мне нужно преобразовать его в ArrayList<Contact>, вместо повторения списка и копирования элементов в arraylist один за другим, есть ли другой способ сделать это?

я пытался

ArrayList<Contact> contactarylist =
    (ArrayList<Contact>) dataManager().getContactsDao().getAll();

но это приведет к ClassCastException из-за того, что List to ArrayList не разрешено.

благодаря

  • 0
    Какова подпись ContactsDAO.getAll() ?
  • 0
    И что еще более важно, покажите нам реализацию ContactsDao.getAll
Теги:
hibernate

1 ответ

1

Просто используйте интерфейс List<> небезопасный класс в вашем коде. Спящий режим не возвращает ArrayList в качестве реализации результирующего набора. Но он возвращает список. Такой же код, все переменные должны быть определены как интерфейсы, но они могут быть инициализированы конкретным классом.

List<Contact> cs = new ArrayList<>();
...
cs = dataManager().getContactsDao().getAll();

И если вам нужно, чтобы ArrayList использовал конструктор, который принимает коллекцию

List<Contact> cs = new Arraylist<>(dataManager().getContactsDao().getAll());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню