0

我想为您挑选有关 BigDecimal 的布赖恩。我有一个方法,它应该有一个累计到期总金额的方法。这里是:

private BigDecimal addUpTotal(BillRec bill, BigDecimal runningTotal) {
    BigDecimal result = new BigDecimal(0);

    if (bill.getBillInfo().getBillSummAmtSize() > 0) {
        for (int x = 0; x < bill.getBillInfo().getBillSummAmtSize(); x++) {
            if ("TotalAmtDue".equals(bill.getBillInfo().getBillSummAmt(x).getBillSummAmtCode().getCode().toString())) {
                result = runningTotal.add(bill.getBillInfo().getBillSummAmt(x).getAmt());                  
            }
        }
    }      
    return result;
}

问题是我怎么称呼它?意思是当我调用它时,我如何跟踪总数?请注意,您可以看到我将 runningTotal 作为参数传递,但不确定如何将值保留在我将调用它的方法中。

4

1 回答 1

3

怀疑你的意思是这样的:

private BigDecimal addUpTotal(BillRec bill, BigDecimal runningTotal) {
    if (bill.getBillInfo().getBillSummAmtSize() > 0) {
        for (int x = 0; x < bill.getBillInfo().getBillSummAmtSize(); x++) {
            if (...) {
                runningTotal = runningTotal.add(...);
            }
        }
    }      
    return runningTotal;
}

您可以使用局部变量来调用它来保持运行总数:

BigDecimal runningTotal = BigDecimal.ZERO;

for (BillRec bill : bills) {
    runningTotal = addUpTotal(bill, runningTotal);
}
于 2012-06-11T15:31:33.287 回答