在好例子网,分享、交流、成长!
<<

java 通过反射读取和设置类指定属性的值

使用反射可以读取和设置指定属性的值。下面是一个Java示例代码,演示了如何使用反射读取和设置指定属性的值:

import java.lang.reflect.Field;
public class Main{

  
    public static void main(String[] args) {
        ReflectExample example = new ReflectExample();
        example.setName("John");
        example.setAge(25);

        // 读取属性值
        String name = (String) getFieldValue(example, "name");
        int age = (int) getFieldValue(example, "age");
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);

        // 设置属性值
        setFieldValue(example, "name", "Tom");
        setFieldValue(example, "age", 30);
        System.out.println("New Name: " + example.getName());
        System.out.println("New Age: " + example.getAge());
    }

    // 通过反射获取属性值
    public static Object getFieldValue(Object object, String fieldName) {
        try {
            Field field = object.getClass().getDeclaredField(fieldName);
            field.setAccessible(true);
            return field.get(object);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
            return null;
        }
    }

    // 通过反射设置属性值
    public static void setFieldValue(Object object, String fieldName, Object value) {
        try {
            Field field = object.getClass().getDeclaredField(fieldName);
            field.setAccessible(true);
            field.set(object, value);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }
  
}
 class ReflectExample {
    private String name;
    private int 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;
    }
}

通过getFieldValue方法可以读取指定对象的属性值,通过setFieldValue方法可以设置指定对象的属性值。需要注意的是,使用反射操作私有属性时,需要先调用field.setAccessible(true)来允许访问私有属性。

运行上述示例代码,你将会得到输出结果:

Name: John
Age: 25
New Name: Tom
New Age: 30

这表明我们成功地通过反射读取和设置了指定属性的值。

标签: java 反射 ja 读取 属性

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

报警