gpt4 book ai didi

java - java对象可以序列化自己吗?

转载 作者:行者123 更新时间:2023-12-02 07:54:19 26 4
gpt4 key购买 nike

我有一个 JPanel,它可以处理一堆我想按文件名保存和加载的设置。

由于面板已经存在并且了解其自身的所有信息,因此加载和保存应该由面板本身通过附加到按钮的保存(字符串文件名)和加载(字符串文件名)操作来处理,这似乎很自然。

但是,我发现的所有序列化和/或持久性示例都需要一个外部监督程序,将对象传递到序列化器函数中。

我可以使用类似于 writeObject(this) 和 this=readObject() 的方法简单地序列化面板对象吗?还是有一种我没有正确搜索的标准方法来执行此操作?

最佳答案

我不确定我完全理解这个问题,但所有序列化逻辑肯定都位于对象方法(readObject 和 writeObject)中。

当谈论谁会调用这些方法时,这完全取决于您的用例。序列化对象有多种原因,例如:如果想要通过网络将对象传递到另一个 JVM,或者想要在 JVM 重新启动之间保留对象的状态,或者整个状态的任何其他用例对象的信息需要保存在其运行的 JVM 之外。

在您的用例中,可以做到吗?是的。这是一个好的做法吗?也许不是。抽象更好,因为如果您需要保留 JPanel 无法访问的其他对象怎么办?如果在序列化对象之前需要执行一些其他逻辑怎么办?如果您的 JPanel 无法处理订购需求或其他一些要求怎么办?

您可以了解有关 Java 序列化的更多信息 here

关于java - java对象可以序列化自己吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844624/

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