(1)Java8 まで、Optional の、肯定と否定を、以前書いたように実行していたが、
Optional のifPresent の否定形 - Oboe吹きプログラマの黙示録
ifPresentOrElse で書けるようになった。さほど文が短くなるわけではないけど、型を書かなくてもいい。
Optional.ofNullable(object).ifPresentOrElse(e->{ // NULLでない時の処理、Consumer }, ()->{ // NULL の時の Runnableメソッド });
(2)Optional に追加された public Stream
JavaDoc のヒントを見て、気がついた。NULL を含むリスト、コレクションから、Stream の filter を使わずに
NULLをスキップした Stream を作れるではないですか。
サンプル
Stream<Optional<String>> nullableStream = Arrays.asList("a", "b", null, "c").stream().<Optional<String>>map(Optional::ofNullable); Stream<String> stringstream = nullableStream.flatMap(Optional::stream);
この stringstream を forEach で確かめます。
stringstream.forEach(System.out::println); === 結果は、、==== a b c