Java

java反射给对象属性赋值怎么实现

小亿
129
2023-10-26 20:49:58
栏目: 编程语言

Java反射可以通过java.lang.reflect.Field类来给对象的属性赋值。以下是一个示例代码:

import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        // 创建对象
        Person person = new Person();

        // 获取属性
        Field nameField = Person.class.getDeclaredField("name");

        // 设置属性可访问性
        nameField.setAccessible(true);

        // 给属性赋值
        nameField.set(person, "John");

        // 输出属性值
        System.out.println(person.getName()); // 输出: John
    }
}

class Person {
    private String name;

    public String getName() {
        return name;
    }
}

在上面的例子中,首先创建了一个Person对象。然后使用Person.class.getDeclaredField方法获取到了Person类的name属性。为了能够访问私有属性,需要调用Field.setAccessible(true)方法将其设置为可访问。最后,调用Field.set方法将属性值设置为"John"。可以通过person.getName()方法验证属性值是否被成功设置。

0
看了该问题的人还看了