我有这个 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());
}
}
}
最佳答案
假设 getContributionPercentage()
返回一个 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);
关于java - 我怎样才能将这段代码转换为Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31238548/