將可選流轉換為值流

你可能需要將 Stream 發射 Optional 轉換為 Stream 的值,僅發出現有 Optional 的值。 (即:沒有 null 值而不處理 Optional.empty() )。

 Optional<String> op1 = Optional.empty();
 Optional<String> op2 = Optional.of("Hello World");

 List<String> result = Stream.of(op1, op2)
                             .filter(Optional::isPresent)
                             .map(Optional::get)
                             .collect(Collectors.toList());

 System.out.println(result); //[Hello World]