2016-07-06 46 views
0

我試圖想出一個接口,它具有相當非標準的表示字段的方式,因爲它是從遺留系統饋入的,此接口似乎需要一些自定義驗證+轉換,例如用於轉換json字段的Java註釋

  • 截斷字符串值超過指定的長度(例如:在某些情況下截斷串超出第25字符,在一些其他情況下截斷超出第15個字符)
  • 驗證字符串日期字段是格式YYYMMDD和轉化的它在設置器中的日期字段爲yyyy-MM-dd格式

我如何想出使用@interface可以做到這一點的自定義註釋?我能找到@Constraint(validatedBy=someclass.class),但似乎沒有什麼東西可以轉換數據(或者抱歉,如果我沒有看夠不夠)。任何指針都會有幫助。

+0

我不確定你在問什麼。一般來說,這個想法是:你定義了一堆註釋,然後你有一箇中心組件來管理你的「數據對象」。並且該組件使用反射來獲取字段上的註釋列表;然後做「正確」的事情;比如在更新「數據對象」之前驗證數據。 – GhostCat

回答

0

在Java中,你只需要使用「轉化」數據類型在傑克遜標註對象,例如:

private TransformedData data; 

然後配置 - 傑克遜接受一個字符串,並返回一個「TransformedData」對象解串器。當傑克遜試圖填寫您的數據字段時,它會注意到它需要轉換並調用您的解串器。