Java Language Conversion d'un flux de données facultatif en un flux de valeurs


Exemple

Vous devrez peut-être convertir un Stream émetteur Optional en un Stream de valeurs, en n'émettant que des valeurs de Optional existant. (c.-à-d. sans valeur null et ne pas traiter avec 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]