我试图从一个Model类中得到两个字段的和。并使用pojo返回它,但一直得到语法错误。我试图实现的类似于This中投票最多的答案:Summing multiple different fields in a list of objects using the streams api?,但我得到了语法错误。下面是我的模型:
public class BranchAccount {
@NotNull(message = "Account balance is required")
private Double accountBalance;
@NotNull(message = "Profit is required")
private Double profit;
@Temporal(TemporalType.TIMESTAMP)
private Date dateCreated;
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdated;
}
我的Pojo:
public class ProfitBalanceDto {
private Double accountBalance;
private Double profit;
}
我的代码,以获得帐户余额和利润的总和从分行帐户:
public ProfitBalanceDto getAllBranchAccount() {
List<BranchAccount> branchAccounts = branchAccountRepository.findAll();
branchAccounts.stream()
.reduce(new ProfitBalanceDto(0.0, 0.0), (branchAccount1, branchAccount2) -> {
return new ProfitBalanceDto(
branchAccount1.getAccountBalance() + branchAccount2.getAccountBalance(),
branchAccount1.getProfit() + branchAccount2.getProfit());
});
return null;
}
我的错误:
拜托我做错了吗?
PS:我想用流来做这个。
1条答案
按热度按时间r55awzrz1#
正如@Holger在他的评论中提到的,您可以在减少之前Map到
ProfitBalanceDto
如果您使用的是Java 12或更高版本,则使用teeing收集器可能是更好的选择