java 实体动态获取字段值
时间: 2023-08-13 16:03:46 浏览: 328
可以使用反射机制来实现动态获取实体类的字段值。具体实现步骤如下:
1. 获取实体类的 Class 对象:可以使用 `Class.forName()` 方法来获取。
2. 获取实体类中的字段:可以使用 `Class.getDeclaredFields()` 方法来获取所有的字段,或者使用 `Class.getDeclaredField(String fieldName)` 方法来获取指定名称的字段。
3. 设置字段的可访问性:因为有些字段是 private 或 protected 访问权限的,需要使用 `Field.setAccessible(true)` 方法来设置可访问性。
4. 获取字段的值:可以使用 `Field.get(Object obj)` 方法来获取字段的值,其中 obj 参数是实体类的对象。
下面是一个示例代码,演示了如何动态获取实体类的字段值:
```java
public class Entity {
private String name;
private int age;
// 省略 getter 和 setter 方法
}
public class Main {
public static void main(String[] args) throws Exception {
// 获取实体类的 Class 对象
Class<Entity> clazz = Entity.class;
// 获取实体类中的字段
Field nameField = clazz.getDeclaredField("name");
Field ageField = clazz.getDeclaredField("age");
// 设置字段的可访问性
nameField.setAccessible(true);
ageField.setAccessible(true);
// 创建实体类的对象
Entity entity = new Entity();
entity.setName("张三");
entity.setAge(18);
// 获取字段的值
String name = (String) nameField.get(entity);
int age = (int) ageField.get(entity);
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
}
}
```
输出结果为:
```
姓名:张三
年龄:18
```
阅读全文