3-3 (1) Reflection

zhyun·2020년 9월 20일
0

HighJava

목록 보기
16/67

Reflection

1) Reflection은 클래스, 또는 멤버변수, 메서드, 생성자에 대한 정보를
가져오거나 수정할 수 있다.
2) Reflection APIjava.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);
	}
}
profile
HI :)

0개의 댓글