2013-08-21 40 views
0

我有一個映射,他們的映射關鍵字是一個枚舉並且有一些值。我如何使用註釋加載java中的字段的值

我有一個領域的Java類,這些字段將與枚舉值,現在我想從地圖中的值設置到田間地頭,任何建議,想法如何做呢?

我使用老式反射,但有更好的方式來實現這一目標,一些在春季或從Apache的百科全書等一些事情嗎?

Map<Myenum,String> map = new HashMap<Myenum,String(); 
map.add(Myenum.Value1, "1"); 
map.add(Myenum.Value2, "2"); 
map.add(Myenum.Value3,"3"); 

我有一個Java類像

MyClass{ 

@Use(fieldName=Myenum.Value1) 
String Field1; 

@Use(fieldName=Myenum.Value2) 
String Field2; 
@Use(fieldName=Myenum.Value3) 
Object Field3; 
@Use(fieldName=Myenum.Value4) 
Integer Field4; 
} 

我想MYCLASS要創建類和字段(字段1,字段2,字段3,字段4),以加載來自值與鍵匹配字段上的註釋的地圖。

e.g字段1應該有vaule 1監守FIELD1的標註在地圖中的第1項是匹配的。

可能類似於JAXWS @XmlElement註釋字段如何得到的東西從XML/SOAP

任何建議裝入的值?

回答

0

我不知道Spring是否有自定義註釋的自定義攔截器/處理程序。基本思考你可以很容易地做到這一點。

  1. 創建您的Map
  2. 獲取您的班級的Class對象。
  3. 獲取該類的聲明Field
  4. 檢查每個Field有註釋Use。如果有,請獲取其fieldName屬性並從Map中檢索相應的元素。
  5. 使用某個版本的newInstance()創建您的課程實例。
  6. 設置每個發現Field與您從Map得到了元素實例。
  7. 句柄類型轉換,無效類型或沒有相應元素的字段。
+0

感謝索蒂里奧斯,這就是我在做什麼目前,只是在想,如果有做一些更好的辦法。 –

相關問題