Java 反射:遍历 List 中实体对象的属性值
您可以使用 Java 的反射机制来遍历获取实体的属性值。以下是一个示例代码:
import java.lang.reflect.Field;
import java.util.List;
public class Main {
public static <T> void printEntityProperties(List<?> list, Class<T> clazz) {
for (Object obj : list) {
try {
T entity = clazz.cast(obj);
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(entity);
System.out.println(field.getName() + ': ' + value);
}
} catch (ClassCastException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add(new Person('John', 25));
list.add(new Person('Jane', 30));
printEntityProperties(list, Person.class);
}
static class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}
在上面的示例中,我们定义了一个 printEntityProperties 方法,它接受一个 List<?> 和一个 Class<T> 作为参数。我们使用泛型 T 来表示实体的类型。然后,我们使用 Java 的反射机制来获取实体的所有字段,并通过 field.get(entity) 来获取字段的值。
在 main 方法中,我们创建了一个包含 Person 实例的 List,并调用 printEntityProperties 方法来遍历并打印实体的属性值。
输出结果如下:
name: John
age: 25
name: Jane
age: 30
请注意,这只是一个简单的示例,实际应用中可能需要处理更复杂的情况,比如处理继承关系、处理字段的修饰符等。
原文地址: https://www.cveoy.top/t/topic/qnJB 著作权归作者所有。请勿转载和采集!