본문 바로가기

프로그래밍/JAVA, Servlet, JSP

특정 클래스의 메소드를 실행(공통함수용)

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;

public class Test1111 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //테스트 VO를 생성
        TestVO vo = new TestVO();
        vo.setManagementId("asd");
        vo.setStatus("123");

        //리스트에 담는다
        List<Object> list = new ArrayList();
        list.add(vo);

        //리스트에서 하나씩 꺼낸다
        //만약 리스트에 VO가 많이 담겨있으면 루프를 이용해서 꺼내쓴다
        Object oo = list.get(0);
       
        //클래스의 메소드들을 배열로 가져온다
        Method[] m = oo.getClass().getDeclaredMethods();
        for(Method mm : m){
            //메소드명
            String name = mm.getName();
            System.out.println(name);
            //set메소드는 실행에서 제외
            if(name.indexOf("set") == -1){
                try {
                    //메소드실행
                    Object o = mm.invoke(oo);
                    System.out.println(o.toString());
                } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}