通过反射获取Java实体类所有属性
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.open2ai</groupId>
<artifactId>jdk8-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jdk8-demo</name>
<url>https://www.open2ai.cn</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
package cn.open2ai.jdk8.reflect;
import lombok.Data;
@Data
public class Base {
private Long id;
private String name;
}
package cn.open2ai.jdk8.reflect;
import lombok.Data;
@Data
public class MyEntity extends BaseEntity {
private String name;
private Integer age;
private Integer sex;
}
package cn.open2ai.jdk8.reflect;
import java.lang.reflect.Field;
public class ReflectDemoApp {
public static void main(String[] args) throws IllegalAccessException {
MyDomain my = new MyDomain();
my.setId(100L);
my.setName("demo");
my.setAge(18);
my.setSex("woman");
getAllFields(my);
}
public static void getAllFields(Object object) throws IllegalAccessException {
Class clazz = object.getClass();
do {
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true); // 如果字段是私有的,需要设置为可访问
Object value = field.get(object); // 获取字段值
System.out.println(field.getName() +": "+ value);
}
clazz = clazz.getSuperclass();
} while (clazz != Object.class);
}
}
name: demo
age: 18
sex: woman
id: 100
- THE END -
最后修改:2024年9月4日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:http://www.open2ai.cn/20.html