zoukankan      html  css  js  c++  java
  • 通过Field (反射)给私有字段赋值

    public class Person {
        public String name;
        public char sex;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public char getSex() {
            return sex;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setSex(char sex) {
            this.sex = sex;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

    进行赋值:

     public static void main(String[]args) throws NoSuchFieldException, SecurityException
        {
            Person person =new Person();
    
            //通过Class.getDeclaredField(String name)获取类或接口的指定已声明字段。
            Field f1=person.getClass().getDeclaredField("name");//指定获取name变量
            System.out.println("f1:"+f1);
    
    
            //通过Class.getDeclaredFields()获取类或接口的指定已声明字段。  ->得到的是一个Field类型的数组
            Field []f2=person.getClass().getDeclaredFields();
            System.out.println("
    f2:");
            for(Field field:f2)//遍历循环输出
            {
                System.out.println(field);
            }
    
    
            //通过Class.getField(String name)返回一个类或接口的指定公共成员字段,私有成员报错。
            Field f3=person.getClass().getField("name");
            System.out.println("
    "+f3);
    
    
            //通过Class.getFields(),返回 Class 对象所表示的类或接口的所有可访问公共字段。
            Field []f4=person.getClass().getFields();
            System.out.println("
    f4:");
            for(Field fields:f4)
            {
                //因为只有name属性为共有,因此只能遍历出name属性
                System.out.println(fields);
            }
        }
  • 相关阅读:
    使用 git 托管代码
    转载自网络大神
    i18n 国际化
    转自知乎大神---什么是 JS 原型链?
    转自知乎大神----JS 闭包是什么
    转自知乎大神----JS 的 new 到底是干什么的?
    转载自知乎大神---this 的值到底是什么?一次说清楚
    sql查看本机IP地址
    Python 编码规范(Google)
    Python在mysql中进行操作是十分容易和简洁的
  • 原文地址:https://www.cnblogs.com/weibanggang/p/10118585.html
Copyright © 2011-2022 走看看