我希望有人能为我澄清这一点,以便我能更好地理解 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/