コレクションのorElse()とorElseThrow()を使用して、空のチェックや機能でストリームを取得します

Farrukh Chishti:

Optional.ofNullable()だけをチェックnull値とCollectionUtils.isNotEmpty()ストリームを返しません。これらの機能の両方を結合する方法はあります。

このようなもの-

Collection.isNotEmpty(entries)
                .orElseThrow(() -> new Exception("exception"))
                .stream()

の代わりに-

Optional.ofNullable(entries)
                .orElseThrow(() -> new Exception("exception"))
                .stream()
リノ:

あなたは、単に使用することができfilter()、それが空でないことを確認するために

Optional.ofNullable(entries)
    .filter(e -> !e.isEmpty())
    .orElseThrow(() -> new Exception("exception"))
    .stream()

あなたは排除したいというあなたのコメントについてはnull、あなたがこれを使用することができ、ストリーム自体の値を:

Optional.ofNullable(entries)
    .filter(e -> !e.isEmpty())
    .orElseThrow(() -> new Exception("exception"))
    .stream()
    .filter(Objects::nonNull)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224967&siteId=1