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()
方法验证属性值是否被成功设置。