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 に答える