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