gpt4 book ai didi

java - 如何序列化一个大列表而不出现 stackoverflow 错误?

转载 作者:行者123 更新时间:2023-11-30 06:41:09 24 4
gpt4 key购买 nike

我的程序中的一个类有一个 LinkedList,通常包含大量元素。序列化此类时,发生了一个 Stackoverflow 错误。我知道这是由于列表中序列化链接的递归方式造成的。所以我想以迭代的方式重写这个列表的writeObject,但我不知道该怎么做。

最佳答案

如果其中一个元素是您的对象 MyObject,例如它引用了 MyObject:

public class MyObject implements Serializable {
private MyObject nextObject;
public void setNextObject(MyObject nextObject) {
this.nextObject = nextObject;
...
}

如果每个 MyObject 链接到下一个/上一个 MyObject,序列化过程将:开始写入第一个 MyObject,在完成第一个 MyObject 写入之前,它将开始写入第二个 MyObject,依此类推,直到最后一个对象。

此结构可能会导致大量元素的序列化 stackoverflow 异常。

解决方案是将下一个对象的唯一 ID 保存为:private int nextObjectId;

关于java - 如何序列化一个大列表而不出现 stackoverflow 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com