关闭

java--反射

97人阅读 评论(0) 收藏 举报
反射(理解)

      (1)反射:在程序运行时期,是通过class文件对象,去使用构造方法,成员变量,成员方法。

      (2)获取class文件对象

           1:Object类的getClass()方法

           2:数据类型的静态的class属性

           3:ClassforName()静态方法
        推荐:开发使用第三种。 

    (3)反射的应用

           1:通过反射获取构造方法并使用

                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("刘意",29);

           2:通过反射获取成员变量并使用

                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");   

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("刘意",29);

                 //获取成员变量

                 Fieldfield = c.getDeclaredField("name");

                 field.setAccessiable(true);

                 field.set(obj,"刘大意");

           3:通过反射获取成员方法并使用

                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("刘意",29);

                 //获取所有公共方法对象,包括从父类继承的

                 //(获取本类所有方法的时候,不包括从父类继承的)

                 Method[]methods = c.getDeclaredMethods();

                 for(Methodm : methods){

                      m.setAccessiable(true);

                      m.invoke(obj,null);
                   
  }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3662次
    • 积分:284
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档