SSISO Community

시소당

자바전문가과정]JAVA; 리플렉션(Reflection)에 대해

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);
      }
}

[출처]  [자바전문가과정]JAVA;  리플렉션(Reflection)에  대해|작성자  유주니
http://blog.naver.com/ilnoon2?Redirect=Log&logNo=140025700947

610 view

4.0 stars