我收到一個Map<String, Object>
從調用API到我的代碼之外。 此映射可以包含各種類型的值(字符串,數字,日期,自定義對象...)。等效於Java中Groovy的DefaultGroovyMethods#asType(在第三方jar中)
編輯: 對於一些非理性的原因,這些值有時存儲爲映射中的適當類型,但有時使用字符串表示形式。 (因此,一個整數可以作爲Java整型或字符串被發現。)
爲了避免這樣的代碼:
Long numericValue = null;
Object val = map.get(key);
if(val!=null) {
numericValue = Long.parseLong(val.toString();
}
我想用類似Groovy的DefaultGroovyMethods#asType它們執行的東西檢查和自省將數據轉換爲目標類型。
是否有任何提供這種強大轉換的知名輕量級庫(jakarta commons,Guava,...)?
難道你不能用Groovy的方法作爲lib嗎? – Will 2015-02-11 15:54:29
爲什麼不。但它將是一個小功能的巨大依賴......我必須將groovy代碼遷移到一個沒有groovy的java項目,這是用Java編寫的類。 – Guillaume 2015-02-11 17:16:41
我想是的。即使它被分成模塊,groovy的核心也相當大,大約2MB。 – Will 2015-02-11 17:37:48