리플렉션(Reflection)에 대해

홈 > 공유팁! > 프로그램 관련
프로그램 관련

리플렉션(Reflection)에 대해

꽁스짱 0 861

Runtime에 클래스를 전달받아서 임의의 method를 실행하는 시스템이 있다고 가정하면 이 때 전달되는 파라미터, return되는 파라미터 모두 개발당시에는 알지 못한다고 하자 이러한 시스템에는 임의의 클래스가 주어졌을 때, 그 클래스에 대한 정보, 다시 말해서 해당 클래스의 생성자 (constructor), 멤버변수, method, 슈퍼 클래스 , 상위 인터페이스에 대한 정보를 얻을 수 있는 기능이 필요하다 이렇게 임의의 클래스에 대한 정보를 얻을 수 있게 해 주는 API가 바로 reflection API이다. 

Ex) import java.lang.reflect.*;
    Object o;
    Class c = o.getClass();
    ……
    Method m = c.getMethod(“setText”, new Class[] {String.class} );
    ……


import java.lang.reflect.*;
import java.awt.*;
class ReflectionTest {

public static void main(String[] args) {
      Button b = new Button();
      getNameSuperClass(b);
}
static void getNameSuperClass(Object o) {
      Class c = o.getClass();
      String s = c.getName();
      String s1 = c.getSuperclass().toString();
      System.out.println(s + "\n" + s1);
  }
} 


0 Comments
제목