我正在使用来自 http://simple.sourceforge.net/ 的简单 xml 框架.我如何格式化日期或 double 值?我看到一个名为 transform 的函数,但如何在我的类中应用它的所有 double 和日期字段?
最佳答案
我可以想到两种方法来做到这一点。
首先:
您可以实现自己的 Matcher
.您可以将其传递给 Persister
当你创建它时。您的 Matcher
只需为您感兴趣的类型返回一个 Transform
。默认情况下会尝试您的自定义 Matcher
不匹配的任何类型那些。您可能需要查看源代码,了解 DateTransform
和 FloatTransform
是如何实现的。它们很短,所以完全可行。仅当您想以特定方式转换所有类型时,此解决方案才有用。
第二个:
创建一个 String
元素来保存序列化数据。
@Element(name = "myelement")
private String strMyElement;
private MyElementType myElement;
然后使用@Persist 和@Validate 注解 Hook 到序列化过程中。
@Persist
private void persist() {
strMyElement = myElement.toString();
}
@Validate
private void validate() {
myElement = myElement.fromString(strMyElement);
}
这种方式更像是一种 hack,但当您只需要在特定情况下覆盖默认序列化时,它很有用。如果您必须为特定类型的每个实例都这样做,它可能会变得笨拙。在那种情况下,我会使用第一种方法。
关于java - 使用简单的 xml 持久化对象时如何格式化日期或 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456759/