Qu'est-ce qui est facultatif? C'est un article de mémoire pour moi à l'époque. Le type facultatif est un type que vous pouvez voir en un coup d'œil que "il peut contenir null" comme une idée approximative. Tout d'abord, un simple exemple de vérification nulle
if (name != null) {
System.out.println(name);
} else {
System.out.println("Je n'ai pas de nom");
}
Bien sûr le résultat
//appeler"J'ai un nom"Lorsqu'il est attribué à
J'ai un nom
//Si le nom est nul
Je n'ai pas de nom
Si vous faites cela avec Optionnel, cela ressemble à ceci
Optional.ofNullable(name).ifPresentOrElse(result -> System.out.println(result),
() -> System.out.println("Je n'ai pas de nom"));
Dans ce cas également, le résultat est le suivant
//appeler"J'ai un nom"Lorsqu'il est attribué à
J'ai un nom
//Si le nom est nul
Je n'ai pas de nom
En premier lieu, il y a plus de moyen d'écrire une instruction if normale ... Ou quelque chose comme ça, si vous le mettez de côté et expliquez ce que vous faites ci-dessus Optional.ofNullable(name) Si la valeur de l'argument n'est pas nulle dans la partie de, l'Optinal qui stocke la valeur est retourné. Comme son nom l'indique, c'est une méthode qui autorise null, et si elle est nulle, elle retourne un facultatif vide généré par la méthode vide facultative. Comparez ce vide facultatif, == nouveau avec le vide facultatif ... Je ne fais rien de tel.
C'est là que ifPresent, une méthode de la classe Optional, apparaît. Donc, j'ai pensé à utiliser ifPresent cette fois, mais j'ai vu de nombreux articles disant que ifPresent ne devrait pas être utilisé à divers endroits. Apparemment, si l'Optionnel que j'ai obtenu en premier était vide, la raison principale était que le traitement else était gênant. Donc, cette fois, j'ai utilisé *** ifPresentOrElse *** nouvellement ajouté à partir de java9. *** ifPresentOrElse (résultat-> System.out.println (résultat), () -> System.out.println ("sans nom")) *** C'est une méthode facile à comprendre en un coup d'œil et qui peut trier le traitement selon que l'Optionnel qui a été acquis en premier est vide.
Comme ça, traitez la valeur qui peut être nulle sans s'approcher de if null etc. Je pense qu'il a l'avantage non seulement de pouvoir écrire proprement, mais aussi d'éviter d'oublier de vérifier les valeurs nulles.
Jusqu'à présent cette fois, qu'est-ce qui est facultatif?
Recommended Posts