Подтвердить что ты не робот

Разрешить java.util.ArrayList $SubList notSerializable Exception

Я использую функцию SubList для объекта типа List. Проблема в том, что я использую RMI и потому, что java.util.ArrayList $SubList реализуется несериализуемым классом, я получил описанное выше исключение, когда пытаюсь передать результирующий объект удаленной функции, принимающей в качестве аргумента List также.  Я видел, что я должен скопировать полученный список в новый LinkedList или ArrayList и передать это.

Кто-нибудь знает функцию, которая помогает легко сделать это для этого, например?

List<String> list = originalList.subList(0, 10);
4b9b3361

Ответ 1

Это потому, что List, возвращаемый методом subList(), является экземпляром "RandomAccessSubList", который не является сериализуемым. Поэтому вам нужно создать новый объект ArrayList из списка, возвращаемого subList().

ArrayList<String> list = new ArrayList<String>(originalList.subList(0, 10));

Ответ 2

Решением был просто этот код:

ArrayList<String> list = new ArrayList<String>();
list.addAll(originalList.subList(0, 10));