反射

反射

  • java的灵魂
  • java动态性的体现;

  • 用途:在运行期探究和使用编译期未知的类

获取Class对象

  • 1、通过实例对象,获取该实例的Class对象

               `getClass方法来自于Object`
    
    
              所有类型都有class对象(基本、引用 void(返回类型))
    
                该方法只能用于获取引用类型的class对象
                该方式不具备动态效果,在运行之前的加载期间JVM已经产生好了Class对象
    
  • 2、通过类型名称获取Class对象

             一个类的Class对象只有一个
             基本数据类型获取.Class只能在JDK1.5以后使用
    
            该方式可以取得所有类型的Class对象
            该方式不具备动态效果
    
  • 3、通过类型名称的字符串形式获取Class对象

           该方法只能获取类类型或接口类型的Class对象
    
          唯一一种具备动态性的反射方式,在运行之前的加载期间JVM不知道什么时候要用到,
           是在运行到这句代码的时候才被通知要加载这个类
    

探究这个类的信息

  • 1、根据属性名得到指定的属性
  • 2、构造的探究
  • 3、行为的探究

操作探究出来的信息

  • 1、通过探究出来的构造方法产生实例对象

               调用Constructor对象的newInstance方法产生实例化对象
               调用class对象的newInstance方法产生实例化对象
               只能调用公共无参构造
    
  • 2、通过探究出来的属性,完成对属性的赋值、取值

         对属性进行赋值(第一个参数是被赋值的实例化对象)
         对属性进行取值
    
  • 3、通过探究出来的方法,进行调用

posted @ 2016-06-05 14:49  浮沉若梦  阅读(93)  评论(0)    收藏  举报