gpt4 book ai didi

Java 流 ifPresent orElse/orElseGet

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:04 25 4
gpt4 key购买 nike

你好,我在这里做错了什么

我想获取基础 Id ,如果它不存在,则获取保险类型..代码片段粘贴在下面..但我在 orElse 部分收到错误,我什至尝试过 orElseGet() ...它说“Lambda 的目标类型必须是一个接口(interface)”..

String type = getFoundationId(companyInsurances).orElse(()->getInsuranceType(insurance, companyInsurances));

private Optional<String> getInsuranceType(Insurance insurance, List<CompanyInsurance> companyInsurances) {
return InsurancePeriodHelper.findFirstCompanyInsuranceOfType(companyInsurances, CompanyInsuranceType.POLICY_HOLDER.getValue())
.map(companyInsurance-> insurance.getProduct());
}

private Optional<String> getFoundationId(List<CompanyInsurance> companyInsurances) {
return InsurancePeriodHelper.findFirstCompanyInsuranceOfType(companyInsurances, CompanyInsuranceType.FOUNDATION.getValue())
.map(companyInsurance -> companyInsurance.getCompany().getFoundationIdentifier().toString());
}

最佳答案

使用 Java-9 及更高版本,您可以使用 Optional.or 简单地链接此类 Optional。如:

String type = getFoundationId(companyInsurances)
.or(() -> getInsuranceType(insurance, companyInsurances))
.orElse("defaultValue");

关于Java 流 ifPresent orElse/orElseGet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55024701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com