Java 8流中的空检查forEach

时间:2016-05-29 18:41:07

标签: java java-8

我有以下代码:

for (final String productId : entry.getValue()) {
    final Product pro = catalogAwareRepository.findUniqueByCatalogAndVersion(Constants.Id, productId, catalog, version, Product.class);
    if (pro != null) {
      productDTOs.add(productConverter.itemDTOfFromItem(product));
    }
}

我将它转换为使用这样的Java 8流:

entry.getValue()
    .parallelStream()
    .map(productId -> catalogAwareRepository.findUniqueByCatalogAndVersion(Constants.Id, productId, catalog, version, Product.class))
    .forEach(pro -> productDTOs.add(productConverter.itemDTOfFromItem(pro)));

这是正确的翻译吗?另外,如何在null操作中执行parallelStream检查?

Tunaki建议后的翻译

entry.getValue().parallelStream().map(productId -> catalogAwareRepository.findUniqueByCatalogAndVersion(Constants.Id, productId, catalog, version, Product.class))
              .filter(Objects::nonNull).map(pro -> productDTOs.add(productConverter.itemDTOfFromItem(pro))).collect(Collectors.toList());

0 个答案:

没有答案