我使用的是簡單的xml框架http://simple.sourceforge.net/。我如何格式化日期或雙精度值?我看到一個名爲transform的函數,但是如何在我的類中應用所有double和date字段?如何使用簡單的xml保存對象時如何格式化日期或雙精度值
回答
有兩種方法我可以考慮這樣做。
第一:
您可以實現自己的Matcher
。當你創建它時,你可以將它傳遞給Persister
。您的Matcher
只需返回一個Transform
您感興趣的類型。您的自定義Matcher
不匹配的任何類型嘗試默認的。您可能需要查看源代碼並查看DateTransform
和FloatTransform
是如何實現的。他們很短,所以它是完全可行的。只有當您想以特定方式轉換所有類型時,此解決方案纔有用。
二:
創建String
元素,將持有序列化的數據。
@Element(name = "myelement")
private String strMyElement;
private MyElementType myElement;
然後使用@Persist和@Validate批註掛鉤序列化過程。
@Persist
private void persist() {
strMyElement = myElement.toString();
}
@Validate
private void validate() {
myElement = myElement.fromString(strMyElement);
}
這種方式更多的是黑客攻擊,但是當您只需要在特定情況下重寫默認序列化時,它就很有用。如果您必須爲特定類型的每個實例執行此操作,它可能會很難處理。在這種情況下,我會使用第一種方法。
Simple使用TransformCache將類型映射到Transformer對象。所以如果提交的是java.lang.Date' type it will use the
org.simpleframework.xml.transform.DateTransform`來將Date對象轉換爲String。
我想你必須實現一個自定義的Transformer for Date或原始的long,並(臨時)替換緩存中該類型的默認Transformer。
我還沒有找到任何指導,起草的策略是基於look on the simple sources。
謝謝安德烈亞斯。我看的是完全一樣的,但所有的類都是包級別的,因此我不能擴展和替換我只需要的2個轉換方法:(複製我的自定義匹配器的所有類並不是一個好方法。 – bschandramohan 2010-08-11 10:24:41
- 1. 如何使用零格式化雙精度值
- 2. 如何格式化當前日期並保存到日期對象中
- 3. 如何以最小精度格式化雙精度
- 4. 在SQLite中存儲雙精度值:如何確保精度?
- 5. 格式化Postgresql中的雙精度值
- 6. 如何使用格式dd/mm/yyyy格式化日期時間對象?
- 7. 格式化日期對象,使其精度以秒爲單位結束
- 8. 如何將格式化日期轉換爲日期對象Java
- 9. Java - toString格式(格式化雙精度)
- 10. 如何更改日期時間對象的日期格式?
- 11. 如何使用時間值格式化日期?
- 12. 如何使用StringBuilder格式化日期
- 13. 如何使用格式化爲日期
- 14. 如何使用php格式化日期?
- 15. 如何使用xlst格式化日期?
- 16. 如何使用NSDateFormatter格式化日期
- 17. 如何使用preg_split格式化日期
- 18. 如何將多個python日期時間實例格式化爲簡單格式?
- 19. 使用指定的小數位數格式化雙精度值
- 20. 格式化日期。如何將int值格式化爲日期格式?
- 21. 如何從日期時間對象獲取短日期格式
- 22. PHP日期格式精度
- 23. 如何格式化日期?
- 24. 如何格式化日期?
- 25. 如何格式化日期
- 26. 格式化日期時間對象
- 27. 如何使用簡單的日期格式
- 28. 使用原始雙精度值初始化Double對象
- 29. 如何使用XML來存儲一個簡單的對象(C#)
- 30. 如何格式化日期時間?
謝謝Qberticus。好建議 - 將嘗試並更新帖子。 – bschandramohan 2010-08-11 14:38:45