解析java.util.ArrayList$SubList notSerializable异常
我在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));
相关文章