Java9の新機能を試す。 今回はOptionalに追加されたメソッド。
ifPresent(Consumer action)
値が存在する場合のみactionを実行する。
// Foo が出力される Optional.ofNullable("Foo").ifPresent(System.out::println); // 何も出力されない Optional.ofNullable(null).ifPresent(System.out::println);
ifPresentOrElse(Consumer action, Runnable emptyAction)
値が存在する場合はactionを実行する。
値が存在しない場合はemptyActionを実行する。
// Foo が出力される Optional.ofNullable("Foo").ifPresentOrElse( System.out::println, () -> System.out.println("Bar")); // Bar が出力される Optional.ofNullable(null).ifPresentOrElse( System.out::println, () -> System.out.println("Bar"));
or(Supplier supplier)
値が存在する場合はそのOptionalを返す。
値が存在しない場合はsupplierが返すOptionalを返す。
// Foo が出力される Optional.ofNullable("Foo").or(() -> Optional.of("Bar")).ifPresent(System.out::println); // Bar が出力される Optional.ofNullable(null).or(() -> Optional.of("Bar")).ifPresent(System.out::println);
stream()
値が存在する場合は要素が1個のストリームを返す。
値が存在しない場合は要素が0個のストリームを返す。
// 1 Optional.ofNullable("Foo").stream().count(); // 0 Optional.ofNullable(null).stream().count();