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