Разрешить java.util.ArrayList $SubList notSerializable Exception
Я использую функцию SubList для объекта типа List. Проблема в том, что я использую RMI и потому, что java.util.ArrayList $SubList реализуется несериализуемым классом, я получил описанное выше исключение, когда пытаюсь передать результирующий объект удаленной функции, принимающей в качестве аргумента List также.
Я видел, что я должен скопировать полученный список в новый LinkedList или ArrayList и передать это.
Кто-нибудь знает функцию, которая помогает легко сделать это для этого, например?
List<String> list = originalList.subList(0, 10);
Ответы
Ответ 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));