java 反射给对象新增属性并赋值
时间: 2024-02-19 22:52:17 浏览: 101
Java反射可以通过调用set方法给对象新增属性并赋值。具体步骤如下:
1. 获取Class对象,可以使用Class.forName()方法或者类的.class属性获取。
2. 使用Class对象的getDeclaredField()方法获取指定名称的属性对象。
3. 设置属性对象的访问权限,使用Field对象的setAccessible(true)方法。
4. 使用Field对象的set()方法给属性赋值。
示例代码如下:
```
public class Person {
private String name;
private int age;
// getter and setter
}
public static void main(String[] args) throws Exception {
// 获取Person类的Class对象
Class<?> clazz = Class.forName("com.example.Person");
// 创建Person对象
Person person = new Person();
// 获取name属性的Field对象
Field nameField = clazz.getDeclaredField("name");
// 设置属性的访问权限
nameField.setAccessible(true);
// 给属性赋值
nameField.set(person, "张三");
// 获取age属性的Field对象
Field ageField = clazz.getDeclaredField("age");
// 设置属性的访问权限
ageField.setAccessible(true);
// 给属性赋值
ageField.set(person, 18);
// 输出属性值
System.out.println(person.getName()); // 输出:张三
System.out.println(person.getAge()); // 输出:18
}
```
阅读全文