我正在尝试使用XMLEncoder将对象图(在我的情况下为树)写入文件。但是,其中包含的一个类实际上不是Java Bean,而且我不特别喜欢将其胆量公开访问。它的访问更像一个列表,并且具有适当的add / remove方法。

我已经写了一个自定义的PersistenceDelegate来解决这个问题。但是,看来我必须手动将PersistenceDelegate添加到XMLEncoder实例。

XMLEncoder是否可以自行选择它,还是真的需要在使用编码器编写可能包含所述类的图时添加它?

最佳答案

在我们的代码库中,我遇到了一个XMLEncodeFactory类,该类允许某个人注册某些类的PersistenceDelegates并使用预先设置的委托处理创建XMLEncoder实例。代码本身非常简单,但是我认为Java已经提供了这种功能。

有人告诉我,这是在与XMLEncoder类的原始开发人员交谈后创建的,显然没有更好的选择。

10-02 11:25