【发布时间】:2021-03-16 04:45:05
【问题描述】:
我得到“在封闭范围中定义的局部变量必须是最终的或有效的最终”,如下所示。我不确定如何在 lambda 表达式中解决这个问题。
synchronizationVBOVO.getProductVO().getProducts().forEach(eachProduct -> {
Products product = v1UserIdaasEntitlementRequest.new Products();
product.setName(eachProduct.getProductName());
Product entitleProduct = entitlementResponse.getProducts().stream()
.filter(entitleproduct -> entitleproduct.getName().equalsIgnoreCase(eachProduct.getProductName()))
.findAny().orElse(null);
List<Packages> packages = new ArrayList<>();
Packages pack = v1UserIdaasEntitlementRequest.new Packages();
eachProduct.getPackages().forEach(productPack -> {
pack.setName(productPack.getPack().getPackageName());
Package entitlePackage = new Package();
if(null != entitleProduct && null != entitleProduct.getPackages() && !entitleProduct.getPackages().isEmpty()) {
entitlePackage = entitleProduct.getPackages().stream().filter(
entitlePack ->
entitlePack.getName().equalsIgnoreCase(productPack.getPack().getPackageName()))
.findAny().orElse(null);
}
List<RumLimits> rumLimits = new ArrayList<>();
RumLimits rumlimit = v1UserIdaasEntitlementRequest.new RumLimits();
productPack.getPack().getRumLimits().forEach(rumLimit -> {
setRumLimits(entitlePackage, rumLimits, rumlimit, rumLimit);
Wallet wallet = v1UserIdaasEntitlementRequest.new Wallet();
setWallet(v1UserIdaasEntitlementRequest, pack, entitlePackage, wallet);
});
pack.setRumLimits(rumLimits);
packages.add(pack);
});
product.setPackages(packages);
allProducts.add(product);
});
【问题讨论】:
标签: java lambda collections java-8 java-stream