可以使用反射来获取集合中的字段并进行累加操作。以下是一个示例:

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() 方法获取该字段的值,并加入到累加器中。最终输出累加器的值即为所有学生的成绩之和。

Java 使用反射累加集合中字段内容

原文地址: https://www.cveoy.top/t/topic/lrz2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录