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 });
- 매소드 객체를 호출
- 클래스명을 이용하여 클래스 객체 얻어옴
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 });
- 매소드 객체를 호출
댓글
댓글 쓰기