解析java.util.ArrayList$SubList notSerializable异常

2022-08-23 00:00:00 serialization arraylist java rmi

我在List类型的对象上使用SubList函数。问题是我使用的是RMI,并且因为java.util.ArrayList$SubList是由一个不可序列化的类实现的,所以当我尝试将结果对象传递给一个以列表为参数的远程函数时,我得到了上面描述的异常。 我已经看到,我应该将结果列表复制到新的LinkedList或ArrayList并传递它。

例如,有没有人知道可以帮助轻松完成此操作的函数?

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

解决方案

这是因为,subList()方法返回的List是不可序列化的‘RandomAccessSubList’的实例。因此,您需要根据subList()返回的列表创建一个新的ArrayList对象。

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

相关文章