有没有办法创建转换器或在每次转换后执行的某些操作?对于上下文,我正在尝试为不在我的 XML 中的字段填充默认值,以便在我的数据模型发生更改时保持向后兼容性。例如,如果我有这个对象:
class A {
private String b;
private String c;
private String d;
}
我的 XML 类似于:
<a>
<b>b</b>
<d>d</d>
</a>
我希望我的 XML 导入知道该字段有一个默认值,c
并将"c"
其设置A
为这样。这应该是一个通用操作,我可以将默认值添加到非常复杂的图形的任何字段中。如果有某种方法可以在每次转换后触发一个函数,它可以根据我想设置默认值的对象映射检查当前对象。
另请注意,使用 readResolve/readObject 似乎不是一个选项,因为 1. readObject() 似乎对我根本不起作用 2. readResolve 会用默认值覆盖该字段,即使它实际上包含在 XML 中. 如果我在这里的假设是错误的,请告诉我。
编辑:: 我在用户邮件列表中找到了这个相关线程:http: //article.gmane.org/gmane.comp.java.xstream.user/4619/match=default+value
似乎唯一建议的解决方案是使用readResolve()
我已经说过的不是有效的解决方案。