본문 바로가기
IT/Java

reflection 를 통해 MapToObject 만들기

by 성준하이 2023. 4. 10.
반응형

이번 포스팅은 저번에 이어서 reflection 를 더 잘 사용하기 위한 포스팅이다.

 

reflection에 대한 내용은 아래 참고 포스팅을 활용 바란다.

 

아래 예시는 Map으로 Dto를 만들기 위한 샘플 메서드 이다.

public static Object mapToObject(Map map, Object obj){
     String keyName = null;
     String methodName = null;

     Iterator itr = map.keySet().iterator();

     while(itr.hasNext()){
        keyName = itr.next().toString();
        methodName = "set"+keyName.substring(0,1).toUpperCase()+keyName.substring(1);
         try {
             for (Method method: obj.getClass().getDeclaredMethods()){

                 if(methodName.equals(method.getName())){
                 method.invoke(obj, map.get(keyName));
             }
         }catch (IllegalAccessException e) {
             e.printStackTrace();
         } catch (IllegalArgumentException e) {
             e.printStackTrace();
         } catch (InvocationTargetException e) {
             e.printStackTrace();
         }
    }
    return obj;
}

 

사용은 다음과 같이 한다.

 

//Map 선언해주기

TestDto dto = new TestDto();

dto = mapToObject(map,dto);


참고 포스팅

https://thenicesj.tistory.com/524

 

java 에서 동적 메서드 (reflection)

Reflection 이란? 자바에서 메서드를 사용할때 대부분 구체적인 메서드를 가지고 개발을 하지만 동적으로 작업을 하던가, 구체적인 클래스 타입을 알지 못하더라도 해당 클래스의 메서드, 타입, 변

thenicesj.tistory.com

 

반응형

댓글