以下是一个示例代码,用于遍历一个包含对象的ArrayList,并返回每个对象的类属性:
import java.lang.reflect.Field;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 创建一个包含对象的ArrayList
ArrayList personList = new ArrayList<>();
personList.add(new Person("Alice", 25));
personList.add(new Person("Bob", 30));
personList.add(new Person("Charlie", 35));
// 遍历ArrayList并返回每个对象的类属性
for (Person person : personList) {
Class> clazz = person.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
Object value = field.get(person);
System.out.println(field.getName() + ": " + value);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
System.out.println();
}
}
}
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;
}
}
在上述示例中,我们创建了一个包含Person对象的ArrayList,并使用反射来遍历ArrayList中的每个对象。通过调用person.getClass()
方法获取对象的类,然后使用clazz.getDeclaredFields()
方法获取类的所有属性。接下来,我们使用field.setAccessible(true)
来获取私有属性的值,并使用field.get(person)
方法获取属性的值。最后,我们使用field.getName()
方法获取属性的名称,并将属性名称和值打印出来。
这样,我们就可以遍历ArrayList中的每个对象,并返回每个对象的类属性。