我正在尝试使用XMLEncoder
将对象图(在我的情况下为树)写入文件。但是,其中包含的一个类实际上不是Java Bean,而且我不特别喜欢将其胆量公开访问。它的访问更像一个列表,并且具有适当的add
/ remove
方法。
我已经写了一个自定义的PersistenceDelegate
来解决这个问题。但是,看来我必须手动将PersistenceDelegate
添加到XMLEncoder
实例。XMLEncoder
是否可以自行选择它,还是真的需要在使用编码器编写可能包含所述类的图时添加它?
最佳答案
在我们的代码库中,我遇到了一个XMLEncodeFactory
类,该类允许某个人注册某些类的PersistenceDelegates
并使用预先设置的委托处理创建XMLEncoder
实例。代码本身非常简单,但是我认为Java已经提供了这种功能。
有人告诉我,这是在与XMLEncoder
类的原始开发人员交谈后创建的,显然没有更好的选择。