我们使用Castor将Castor对象解组为XML字符串。Castor没有为null对象生成Empty标记。是否有API可用于在解组时将其设置为参数?
有一种方法可以通过使用处理程序并重写convertUponGet方法来返回空字符串来处理它。但是,有更好的方法吗?
任何线索都会有所帮助。
根据我所看到的,有三种方法可以按从好到坏的顺序处理此问题。
-
使用GeneralizedFieldHandler,如中所述http://stackoverflow.com/questions/9176479/how-to-tell-castor-to-marshall-a-null-field-to-an-empty-tag.字段处理程序可用于其他字段,并且不会更改类的行为。
-
修改给定字段的get方法以检查是否为null,如果为null则返回空字符串。这种方法会更改类的行为,因此,如果代码的其他部分依赖于该字段的null(这也不是一个好主意),则会遇到问题。
-
当遇到null时,您可以修改Castor以返回一个空字符串。通常,更改您正在使用的工具是一个非常糟糕的主意,除非您将其提交回项目的开发人员,以便集成到他们的代码库中以备将来发布。这似乎不太可能,因为这个问题早在2007年就被提出来了http://old.nabble.com/Forcing-marshalling-of-null-empty-values--to9080721.html#a9096375如果不是更早的