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