Depuis que je l'ai écrit à l'époque de Java 8, une page résumant les éléments supplémentaires de Java 9 Ce n'est pas si difficile, donc je pense que ça va avec les articles que j'ai déjà, mais j'étudie donc je m'en fiche.
L'article que j'ai écrit pour Java 8 peut être trouvé à ici.
JavaDoc http://download.java.net/java/jdk9/docs/api/java/util/Optional.html
ʻIfPresentOrElse a été ajouté cette fois. Le cas False de ʻif Present qui existait dans Java 8 peut maintenant être complété avec une seule méthode.
Optional<String> optional = Optional.ofNullable("");
Optional<String> optional2 =Optional.ofNullable(null);
optional.ifPresentOrElse(t -> System.out.println(true), () -> System.out.println(false));
optional2.ifPresentOrElse(t -> System.out.println(true), () -> System.out.println(false));
résultat:
true
false
À partir de ce moment, il est possible de réécrire directement la classe Optinal en streaming.
Optional.ofNullable(null).stream().forEach(System.out::println);
résultat:
Notez que s'il est nul, le type ne peut être connu que s'il est défini sur Type d'objet.
OK List<Object> optional = Optional.ofNullable(null).stream().collect(Collectors.toList());
OK List<String> optional = Optional.ofNullable((String)null).stream().collect(Collectors.toList());
NG List<String> optional = Optional.ofNullable(null).stream().collect(Collectors.toList());
Si vous voulez convertir le type de liste en flux avec succès, vous devez le convertir en flux avec flatmap.
List<String> list = List.of("aaa", "bbb");
List<String> list2 = null;
Optional.ofNullable(list).stream().flatMap(t -> t.stream()).forEach(System.out::println);
Optional.ofNullable(list2).stream().flatMap(t -> t.stream()).forEach(System.out::println);
résultat:
aaa
bbb
S'il s'agit de map, il ne sera que de type Stream flatmap.
Pour ceux d'entre vous qui veulent faire de leur mieux avec map, j'ai légèrement cherché un moyen simple de convertir une chaîne à partir de Stream flatmap, je ne pensais pas qu'elle devrait être implémentée ici.
Utilisons-le docilement.
Cette méthode ne fait rien si la valeur existe et ne s'exécute que si elle est Null.
Puisque la valeur de retour est ʻOptional
System.out.println(Optional.ofNullable("aaa").or(() -> Optional.of("bbb")).get());
System.out.println(Optional.ofNullable(null).or(() -> Optional.of("bbb")).get());
résultat:
aaa
bbb
Le JavaDoc ressemble à ces trois fonctionnalités ont été ajoutées. Je n'ai pas vu la note de publication parce que c'était gênant, je l'ajouterai donc s'il y a autre chose.
Recommended Posts