BLOG main image
분류 전체보기 (76)
Program(Java) (6)
Program(Script) (1)
Project (3)
comic & ani (3)
me2day (48)
IT (3)
좋은글 & 시 (3)
살아가는 이야기 (3)
그대를 사랑합니다 (0)
12,938 Visitors up to today!
Today 1 hit, Yesterday 2 hit
daisy rss
tistory 티스토리 가입하기!
2008/09/19 16:44

자바에서 제공하는 api 중에는 reflection api 가 있습니다.
이 reflection api는 동적으로 클래스에 관련된 정보를 가지고 올 수 있도록 도와줍니다.
replaction api 에는 Class 클래스와, Constructure, Method, Field 클래스등이 있습니다.

Class 클래스

1. 지정한 클래스의 정보를 가지고 오는 클래스입니다.
2. Class 클래스의 forClass(String className)와 Object 클래스의 getClass() 메소드로 Class를 만들수 있습니다.

ex)
1. Class cl = Class.forName("[[Ljava.lang.String;");
2. String str ="";
Class cl = str.getClass();

Constructure 클래스

1. 생성자 정보를 가지고 오는 클래스입니다.
2. 생성자를 가지고 있지 않습니다.
3. 따라서 Class 클래스의 getDeclaredConstructors(), getConstructors() 메소드를 사용하여 생성자 정보를 가지고 올 수 있습니다.

ex) Constructure[] constructure = cl.getDeclaredConstructors();

Method 클래스

1. 메소드 정보를 가지고 오는 클래스 입니다.
2. 생성자를 가지고 있지 않습니다.
3. 따라서 Class 클래스의 getMethod(), getDeclaredMethod() 메소드를 사용하여 생성자 정보를 가지고 올 수 있습니다.
4. getDeclaredMethods()의 경우 상속받은 메소드를 못가져 오는대신 private 메소드를 다 가져오는 것이 가능합니다.
5. getMethods()는 상속받은 메소드를 가져오는대신 private형의 메소드를 가지고 올 수 없습니다.

ex)
1. Mothod[] mothod = cl.getMethods();
2. Mothod[] mothod = cl.getDeclaredMethods();

Field 클래스

1. 메소드 정보를 가지고 오는 클래스 입니다.
2. 생성자를 가지고 있지 않습니다.
3. 따라서 Class 클래스의 getField(), getDeclaredField() 메소드를 사용하여 생성자 정보를 가지고 올 수 있습니다.

ex)
1. Field[] field = cl.getField();
2. Field[] field = cl.getDeclaredField();


source 보기




참고문서 : reflect tutorial

Trackback Address :: http://silentvoyage.tistory.com/trackback/106 관련글 쓰기
Name
Password
Homepage
Secret
prev"" #1 #2 #3 #4 #5 ... #76 next