java反射增加字段 给我 一个具体的例子
时间: 2023-07-20 14:29:02 浏览: 177
java反射例子
好的,假设你有一个Java类,名为Person,它有两个字段:name和age。现在你想使用反射来增加一个新的字段,称为gender。你可以按照以下步骤进行操作:
1. 首先,获取Person类的Class对象,可以使用以下代码:
```
Class<Person> personClass = Person.class;
```
2. 接着,创建一个新的Field对象,表示要增加的字段。你需要指定字段名、字段类型和字段修饰符。可以使用以下代码:
```
Field genderField = Person.class.getDeclaredField("gender");
genderField.setAccessible(true);
```
这里设置了字段的访问权限为可访问,因为默认情况下,新添加的字段是私有的,需要设置可访问才能访问。
3. 接下来,使用以下代码来添加新的字段:
```
Field[] fields = Arrays.copyOf(personClass.getDeclaredFields(), personClass.getDeclaredFields().length + 1);
fields[fields.length - 1] = genderField;
```
这里将原来的字段数组复制一份,长度加1,并将新的字段添加到最后一个位置。
4. 最后,使用以下代码来重新设置Person类的字段数组:
```
Field field = Class.class.getDeclaredField("declaredFields");
field.setAccessible(true);
field.set(personClass, fields);
```
这里使用反射设置了Class对象的declaredFields字段,将原来的字段数组替换为新的字段数组。
这样,就成功地使用反射增加了Person类的一个新字段gender。
阅读全文