关于Field反射的简单理解

来源:互联网 发布:数据分析有哪些方法 编辑:程序博客网 时间:2024/05/29 12:13

今天在苏州,没事闲着写下自己的一份博客,自己在看代码的时候遇到问题就喜欢总结,希望有一天能成为像郭大神鸿洋这样的大神!

进入今天的正题

1.怎么通过反射获取类的属性

 a)Class.getDeclaredField(String name);

  返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段

   比如说student中的name这个字段

  

b)Class.getDeclaredFields();

      返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段

这个返回的就是字段的数组也就是把所有的字段都收集起来

       Field [] prFields4=stu.getClass().getDeclaredFields();
        for(Field field:prFields4)
        {
            System.out.println(field);
            System.out.println(field.equals(property1));
            //私有变量必须先设置Accessible为true
            field.setAccessible(true);
            //获取用get类方法。
            System.out.println(field.get(stu));
        }
        //设置用set类方法 可以为该字段的属性设置值
        property3.set(stu, "名字被我改了,哈哈");

 Text a = new Text();
    Field field = null;
   field = a.getClass().getDeclaredField("x");
    System.out.println("xiugaiqiandezhi----------------"+ field);

打印出来的是一个地址private java.lang.String Text.x

下面这个就表示为这个字段设置设置值,这样的话打印出来的就是你设置的这个值了  

 field.set((Object) a, "8");
   System.out.println("xiugaiqiandezhi----------------"+ field.get(a));

0 0
原创粉丝点击