java - JAXB 对象未实现可序列化的后果是什么?

标签 java jaxb serializable

我希望有人能为我澄清这一点,以便我能更好地理解 JAXB 对象的编码是如何工作的。

通过阅读和查看示例,我了解到 JAXB 对象必须实现 java.io.Serializable,以便可以正确地编码和解码该对象。我有点不确定的部分是当您的一个 JAXB 对象没有实现可序列化时会发生什么(阅读:后果是什么)?这在过去发生过,并导致日志文件中出现类似于

的错误
ERROR [example.package.name.MyJaxbClass.data]DiskStorageFactory.call{503} | Disk Write of -309037891 failed: 
java.io.NotSerializableException: example.package.name.myJaxbClass$MyNonSerializedElement

但其余代码似乎工作正常。实现可序列化对于 JAXB 类有多重要?如果不实现会发生什么?

最佳答案

A JAXB (JSR-222)对象不需要实现 java.io.Serializable 就可以将其转换为 XML 或从 XML 转换。对象与 XML 之间的转换不会作为 Java 序列化的一部分发生。当然,如果您确实希望序列化对象以供应用程序的其他部分使用,那么您需要为此正确配置它们。

关于java - JAXB 对象未实现可序列化的后果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549410/

相关文章:

Java 可序列化保存

java - 当可以通过重写 writeObject() 和 readObject() 进行自定义序列化时,java 外部化有什么用?

java - 如何从不同的 Activity 获取 RadioGroup 值

Java、HTTP 和套接字 : When to stop reading the request but keep the socket open?

java - 应用程序在 Liberty 17.0.0.4 上停止运行(在 17.0.0.3 上运行)

java - JAXB boolean 处理异常和 JSF

java - 由于 'fatJar task',Gradle 构建失败,尽管代码在另一个项目中对我有用

java - 如何使用 JAXB 修改 XML 元素?

java - JaxB 读取类层次结构

android - 无法在 Intent : The Method Put Extra is Ambiguous for the type Intent 中传递自定义对象