我有这个Java 6代码,我想将其转换为Java 8.
BigDecimal sumContributionPercentage = new BigDecimal(0);
if (hasElements(mandateDetails)) {
for (InstrumentMandateDetail mandate: mandateDetails) {
if(!(VERFI_STATUS_CLOSED.equals(mandate.getMandateVerificationStatusType().getCode()) ||
VERFI_STATUS_REJECTED.equals(mandate.getMandateVerificationStatusType().getCode()))) {
sumContributionPercentage = sumContributionPercentage.add(mandate.getContributionPercentage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
假设getContributionPercentage()返回a BigDecimal,您可以使用以下内容:
BigDecimal sumContributionPercentage =
mandateDetails.stream()
.filter(m -> !(VERFI_STATUS_CLOSED.equals(m.getMandateVerificationStatusType().getCode()) ||
VERFI_STATUS_REJECTED.equals(m.getMandateVerificationStatusType().getCode())))
.map(InstrumentMandateDetail::getContributionPercentage)
.reduce(BigDecimal.ZERO, BigDecimal::add);
Run Code Online (Sandbox Code Playgroud)