我在 List 类型的对象上使用 SubList 函数。问题是我正在使用 RMI,并且因为 java.util.ArrayList$SubList 是由不可序列化的类实现的,所以当我尝试将结果对象传递给以 List 作为参数的远程函数时,我得到了上述异常也是。 我已经看到我应该将生成的 List 复制到新的 LinkedList 或 ArrayList 并传递它。
有没有人知道一个功能可以帮助轻松地做到这一点?
List<String> list = originalList.subList(0, 10);
最佳答案
这是因为 subList() 方法返回的 List 是 'RandomAccessSubList' 的一个实例,它是不可序列化的。因此,您需要从 subList() 返回的列表中创建一个新的 ArrayList 对象。
ArrayList<String> list = new ArrayList<String>(originalList.subList(0, 10));
关于java - 解决 java.util.ArrayList$SubList notSerializable 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568205/