Java 反射的获取设置成员变量

Java 反射的获取设置成员变量,第1张

Java 反射的获取设置成员变量

Java 反射的获取成员变量
文章记录学习过程
只供参考

1.获取成员变量们
Field[] getFields() 获取所有public修饰的成员变量
Field[] getDeclaredFields() 获取所有成员变量,不考虑修饰符
Field setAccessible(true);//忽略访问权限修饰符的安全检查(暴力反射)

import java.lang.reflect.Field;

public class ReflectDemo2 {
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Class personClass =Person.class;

        Field[] fields= personClass.getFields();//获取所有public的修饰的成员变量
        for(Field field:fields){
            System.out.println(field);
        }

        System.out.println("------------");
        Field a= personClass.getField("a");
        Person p=new Person();
        Object value=a.get(p);//获取对象Person 的属性a的值
        System.out.println(value);

        a.set(p,"张三");
        System.out.println(p.toString());

        System.out.println("====================");

        Field[] declaredFields= personClass.getDeclaredFields();//获取所有的成员变量,不考虑修饰符

        for (Field i:declaredFields){
            System.out.println(i);
        }

        Field d = personClass.getDeclaredField("d");
        d.setAccessible(true);//忽略访问权限修饰符的安全检查(暴力反射)
        Object value2 = d.get(p);
        System.out.println(value2);
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5691945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存