我有一堂课,有几个整数属性,像这样:

public class Test {
    private Integer a;
    private Integer b;
    private Integer c;
    private Integer d;
    private Integer e;
    private Integer f;
    private Integer g;
}


因此,我得到了具有很多寄存器的此类列表,并且我必须单独汇总该列表的所有属性。然后我做了类似的事情:

List<Test> tests = testRepository.findAllTest();

Test test = new Test();
for (Test testList: tests) {
    test.setA(test.getA + testList.getA);
    test.setB(test.getB + testList.getB);
    test.setC(test.getC + testList.getC);
    test.setD(test.getD + testList.getD);
    test.setE(test.getE + testList.getE);
    test.setF(test.getF + testList.getF);
    test.setG(test.getG + testList.getG);
}
 return test;


此实现工作正常,但我现在想知道是否有更简单的方法来执行此操作,清除此代码并将其简化

最佳答案

我将其分解为几个子问题:将一个Test对象添加到另一个,并汇总列表。

对于第一个问题,您可以向Test类添加一个方法,该方法添加两个测试对象并返回一个包含总和的新Test对象。

public class Test {
    ...

    public Test add(Test testToAdd){
        Test result = new Test();
        result.setA(a + testToAdd.getA());
        ...
        result.setG(g + testToAdd.getG());
        return result;
    }
}


然后可以在求和循环中调用它:

List<Test> tests = testRepository.findAllTest();
Test testTotal = new Test();
for (Test test: tests) {
    testTotal = testTotal.add(test);
}


另一个好处是可以更清楚地了解循环的作用。

关于java - 汇总列表中的所有属性值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57980599/

10-14 17:17
查看更多