假设我有一个简单的HashMap
:
Map<String, String> map = new HashMap<>();
map.put("field1","value1");
map.put("field2", "value2");
我也有简单的java类:
class SimpleClass {
public String field1;
public String field2;
}
使用来自地图的相应字段/值来创建SimpleClass
实例的最简单,最优雅的方法是什么?在这种情况下,生成的SimpleClass
实例应获得field1
值'value1 and
field2 value
value2`。
SimpleClass
已经定义,现在我们需要在map中找到匹配的键,如果找到匹配项,则应将其值分配给相应的类字段。
在我的真实应用程序中,我将获得地图列表,并且需要将其转换为List<SimpleClass>
。 Map可以包含需要省略的其他键(如果没有匹配的类字段可用)。
我可以使用(例如)番石榴来进行这种转化吗?我在Android上,因此到目前为止无法使用Java流。
[编辑]
我的尝试
private SimpleClass mapToObject(Map<String, String> map)
{
SimpleClass result = new SimpleClass();
for(Field f: result.getClass().getDeclaredFields())
{
try
{
f.setAccessible(true);
f.set(result,map.get(f.getName()));
}
catch (Exception e)
{
Log.d("error", e.toString());
}
}
return result;
}
答案 0 :(得分:0)
使用ObjectMapper,
SimpleClass simpleClass = objectMapper.convertValue(map, SimpleClass.class);