0

我有一张地图,地图的关键是一个枚举并且有一些值。

我有一个带有字段的 java 类,字段用枚举值注释,现在我想将值从地图设置到字段,有什么建议,知道如何去做吗?

我正在使用普通的旧反射,但是有没有更好的方法来实现这一点,春天的东西或 apache commons 的东西等?

例如

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 类和字段(Field1,Field2,Field3,Field4)加载地图中的值,其中键与字段上的注释匹配。

例如 field1 应该具有 vaule 1 因为 field1 的注释与地图中条目 1 的键匹配。

可能类似于 Jaxws @XMLElement 注释字段如何获取从 xml/soap 加载的值

有什么建议么?

4

1 回答 1

0

我不知道 Spring 是否有用于自定义注释的自定义拦截器/处理程序。您可以通过基本反射轻松完成此操作。

  1. 创建您的Map.
  2. Class为您的班级获取对象。
  3. Field获取该类的声明s。
  4. 检查每个Field是否都有注释Use。如果是,则获取其fieldName属性并从Map.
  5. 使用某个版本的newInstance().
  6. 使用Field您从Map.
  7. 处理类型转换、无效类型或没有对应元素的字段。
于 2013-08-21T19:15:29.220 回答