1) Reflection은 클래스, 또는 멤버변수, 메서드, 생성자에 대한 정보를
가져오거나 수정할 수 있다.
2) Reflection API는 java.lang.reflection 패키지와 java.lang.Class를
통해서 제공된다.
3) java.lang.Class의 주요메서드
: getName(), getSuperClass(), getInterface(), getModifiers()
4) java.lang.reflect 패키지의 주요 클래스
: Field, Method, Constructor, Modifier등.
Class 오브젝트(클래스의 정보를 담고있는)를 생성하기
public class T01_ClassObjectCreationTest {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//첫번째 방법 : Class.forName() 메서드 이용 , Class 객체 klass 반환
Class<?> klass = Class.forName("kr.or.ddit.reflection.T01_ClassObjectCreationTest"); //Class 정보를 얻어오려면 객체(klass)가 있어야함
//두번째 방법 : getClass() 메서드 이용
T01_ClassObjectCreationTest obj = new T01_ClassObjectCreationTest();
System.out.println(obj);
klass = obj.getClass();
//세번째 방법: .class 이용
klass = T01_ClassObjectCreationTest.class;
//klass에 Class에 대한 정보를 다 가지고 있음.
//Class 오브젝트 이용하여 객체 생성하기
obj = (T01_ClassObjectCreationTest) klass.newInstance();
System.out.println(obj);
}
}