返回对象值方法无法正常工作

时间:2018-05-27 11:58:52

标签: java

我有一个简单的java方法,我传入自定义对象的ArrayList,并获取它们的值,将它们一起添加并返回它们。我尝试使用foreach循环和传统循环进行迭代,但它只返回0.

public static int samletBeløb(ArrayList<Bruger> brugere) {
    int samletBeløb = 0;
    for (int i = 0; i < brugere.size(); i++) {
        Bruger bruger =brugere.get(i);
        int value = bruger.getBeløbGivet();
        value += samletBeløb;
    }

    return samletBeløb;
}

我已经确定,Object值不为null,当我调试程序时,它正确循环,但没有添加任何值。

3 个答案:

答案 0 :(得分:3)

这是因为您没有将每个value添加到samletBeløb变量。 将您的代码更改为:

public static int samletBeløb(ArrayList<Bruger> brugere) {
        int samletBeløb = 0;
        for (int i = 0; i < brugere.size(); i++) {
            Bruger bruger =brugere.get(i);
            int value = bruger.getBeløbGivet();
            samletBeløb += value;
        }

        return samletBeløb;
}

答案 1 :(得分:2)

您没有更改samletBeløb变量。

将您的代码更改为:

public static int samletBeløb(ArrayList<Bruger> brugere) 
{
    int samletBeløb = 0;
    for (int i = 0; i < brugere.size(); i++) {
        samletBeløb += brugere.get(i).getBeløbGivet();
    }

    return samletBeløb;
}

顺便说一句,使用Java 8 Stream可以将此方法简化为一行:

public static int samletBeløb(ArrayList<Bruger> brugere) 
{
    return brugere.stream().mapToInt(Bruger::getBeløbGivet).sum();
}

答案 2 :(得分:2)

这是因为你正在加起来但是返回samletBeløbalways,它被初始化为0所以我总是给你一个0;试试这段代码:

public static int samletBeløb(ArrayList<Bruger> brugere) {
    int value = 0;
    for (int i = 0; i < brugere.size(); i++) {
        Bruger bruger =brugere.get(i);
          value += brugere.get(i).getBeløbGivet();

    }

    return value;
}