Java, JSP
Java return generic type (map to bean)
수앙
2015. 6. 12. 01:22
자바를 사용하다 보면 map을 bean으로 변환해야 할 일이 많다.
하지만 변환하다보면 형변환(cast)를 강제적으로 해주면서 코드가 지저분해지는 걸 종종 보게 되는데
이를 방지코저 제네릭 타입으로 리턴하는 예제를 해보겠다.
public static <T> T map2Bean(Map<String, Object> map, Class<T> clazz) {
T t= null;
try {
t = clazz.newInstance();
for (Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value == null) {
continue;
}
for (Method m : clazz.getDeclaredMethods()) {
if (m.getName().equalsIgnoreCase("set" + key)) {
m.invoke(t, value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
대략 위의 같은 코드이다. 편집기에서 손으로 직접 짠거라 에러가 난 거는 직접 수정 또는 확장해야 한다.