「java入門」リフレクション(reflect)でMap型からObject型へキャストするコード

2017年9月18日

Javaコード
class ReflectDemo{

public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;

Object obj = beanClass.newInstance();

Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
}

field.setAccessible(true);
field.set(obj, map.get(field.getName()));
}

return obj;
}

public static Map<String, Object> objectToMap(Object obj) throws Exception {
if(obj == null){
return null;
}

Map<String, Object> map = new HashMap<String, Object>();

Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
map.put(field.getName(), field.get(obj));
}

return map;
}
}