Java 使用反射累加集合中字段内容
可以使用反射来获取集合中的字段并进行累加操作。以下是一个示例:
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
List<Student> students = new ArrayList<>();
students.add(new Student('Tom', 80));
students.add(new Student('Jerry', 90));
students.add(new Student('Alice', 85));
students.add(new Student('Bob', 70));
int sum = 0;
for (Student student : students) {
Class<?> clazz = student.getClass();
Field field = clazz.getDeclaredField('score');
field.setAccessible(true);
int score = field.getInt(student);
sum += score;
}
System.out.println('Sum of scores: ' + sum);
}
}
class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
在上面的示例中,我们创建了一个包含若干个学生对象的集合,并使用反射累加了它们的成绩。具体来说,我们首先遍历集合中的每个学生对象,然后通过 getClass() 方法获取它的类对象,再通过 getDeclaredField() 方法获取它的 score 字段,并调用 setAccessible(true) 方法使得该字段可以访问。最后,我们使用 getInt() 方法获取该字段的值,并加入到累加器中。最终输出累加器的值即为所有学生的成绩之和。
原文地址: https://www.cveoy.top/t/topic/lrz2 著作权归作者所有。请勿转载和采集!