Java 带有XMLEncoder/Decoder的序列化代理

Java 带有XMLEncoder/Decoder的序列化代理,java,serialization,proxy,xml-serialization,Java,Serialization,Proxy,Xml Serialization,如何实现可与XMLEncoder/Decoder一起使用的序列化代理? 经典的(我的意思是Bloch)不起作用…简单的回答是,您需要编写一个前端来管理序列化。然而,这将是痛苦的,并且可能不会给你你想要的。最初的Java序列化机制允许对象控制自己的序列化和反序列化,而XML实现不允许。据我所知,XMLEncoder/XMLDecoder仅用于值对象 如果您描述了您实际要实现的目标,很可能有人会给您提供另一种方法。我认为您需要为每个编码器实例设置PersistenceDelegates。您可以使用提

如何实现可与XMLEncoder/Decoder一起使用的序列化代理?
经典的(我的意思是Bloch)不起作用…

简单的回答是,您需要编写一个前端来管理序列化。然而,这将是痛苦的,并且可能不会给你你想要的。最初的Java序列化机制允许对象控制自己的序列化和反序列化,而XML实现不允许。据我所知,XMLEncoder/XMLDecoder仅用于值对象


如果您描述了您实际要实现的目标,很可能有人会给您提供另一种方法。

我认为您需要为每个
编码器
实例设置
PersistenceDelegate
s。您可以使用提供
BeanInfo
的常用bean机制对属性进行一些更改


如果你看一下源代码,你会发现有很多AWT和Swing bean的硬连接软糖。这真的不太好-我建议看看JAXB之类的东西。

我想将一个不可修改的类序列化为XML,其中字段是最终的,没有setter方法。这是一个理想的解决方案,而不是要解决的问题。这门课是用来做什么的?你为什么要连载它?XML是完成任务的最佳方式吗?无论如何,我的第一句话仍然适用:您需要编写前端来管理序列化;它不会处理任意对象的序列化(即,不进行预处理),但可能是一个更好的现实解决方案