zoukankan      html  css  js  c++  java
  • 3、反射-Field

    类的属性

    1、获取字段

      获取全部字段:getDeclaredField()

      获取某一个字段:getDeclaredField(String name)

    2、获取指定对象指定的字段的值

      get(Object obj):私有的需要调用:setAccessible(true)

    3、设定指定对象指定的值

      set(Object obj,Object value)

    public class Person {
        String name;
        private int age;
    
    
        public Person() {
        }
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }
          Class clazz = Class.forName("cn.com.mrchengs.field.Person");
    
            //1、获取所有字段
            //共有的私有的均能获取
            Field[] fields = clazz.getDeclaredFields();
            for (Field field : fields){
                System.out.println(field.getName());
            }

            //2、获取指定名字的Field
            //共有的私有的都能获取得到
            Field field = clazz.getDeclaredField("age");
            System.out.println(field.getName());
            Field field1 = clazz.getDeclaredField("name");
            System.out.println(field1.getName());

     

           //3、获取指定对象的Field的值
            Person person = new Person("MrChengs",22);
            Field field = clazz.getDeclaredField("age");
         //对于私有的属性需要设置 field.setAccessible(
    true); Field field1 = clazz.getDeclaredField("name"); Object age = field.get(person); Object name = field1.get(person); System.out.println(age); System.out.println(name);

            //4、设置值
            Person person = new Person("MrChengs",22);
            Field field = clazz.getDeclaredField("age");
            field.setAccessible(true);
            field.set(person,33);
            System.out.println(field.get(person));

     对于工具方法同时可以参考Method的使用以及相关父类中的方法

     

  • 相关阅读:
    Atom,AtomPub 和Java 转载
    使用OData协议查询Windows日志 转
    许可协议BSD GPL MPL LGPL APL转载
    Eclipse Galileo 简介
    常见证书格式和转换
    JVM简介转
    Android Native 代码开发学习笔记转载
    echarts——各个配置项详细说明总结
    Mysql 安装服务无法启动解决方案与使用的一般使用指令
    js中如何把字符串(文本)转化为对象
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/10933620.html
Copyright © 2011-2022 走看看