gpt4 book ai didi

java - 如何自定义复杂对象的序列化?

转载 作者:行者123 更新时间:2023-11-30 05:59:24 26 4
gpt4 key购买 nike

我有一个复杂的对象,其中包含字段和对数据库的引用,我想将其作为序列化对象传递。我实现了该接口(interface),但另一方面它不起作用,并出现意外错误。

我想做的是,在序列化之前告知仅序列化 ID,并在反序列化之后更轻松地取回 ID 并重建项目。

为了帮助获取代码,我有

setId();
getId();
and Load() methods

我想由对象在内部完成。

如何做到这一点?

最佳答案

serialize没有意义数据库资源,因此您需要将不可序列化字段设置为 transient 字段,然后在 readObject 方法中解析它们。例如:

private int id;
private transient java.sql.Connection connection;

private void readObject(ObjectOutputStream out) throws IOException {
out.defaultReadObject();
connection = DriverManager.getConnection();
}

这里 id 字段将在 defaultReadObject() 中反序列化,但如果您想要数据库资源,则必须自己管理它,因为 transient 数据无法在 JVM 之间传输。

关于java - 如何自定义复杂对象的序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139312/

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