java reflect

1: Class clazz = Class.forName("클래스명");
- 클래스명을 이용하여 클래스 객체 얻어옴

2: Constructor<클래스명> constructor = clazz.getConstructor(new Class[]{Integer.class, String.class ...});
- 1번에서 얻어온 객체의 생성자를 얻어옴
- 파라미터의 Class[]는 생성자에 지정된 파라미터 파입의 리스트

3: Object object = constructor.newInstance(new Object[]{1, "테스트"});

- 생성자 객체를 이용하여 실제 생성자에 쓰이는 객체 리스트 전달 하여 얻고자 하는 객체를 얻어옴

4: Method method = clazz.getMethod(methodName, new Class[] { Data.class });

- Class[]의 요소가 파라미터 타입인 methodName에 해당 되는 매소드 객체를 가져옴

5: Object resultObj = method.invoke(object, new Object[] { data });

- 매소드 객체를 호출 

댓글

이 블로그의 인기 게시물

Spring Batch - JobParameters Default Value 만들기

Hsqldb Server 재기동 시 오류