Au moment de la rédaction de cet article, j'ai peu de connaissances sur la syntaxe de java.util.Optional.
Classe ajoutée dans Java8-java.util.Optional
** Un objet conteneur qui peut ou non contenir des valeurs non nulles. ** ** by https://docs.oracle.com/javase/jp/8/docs/api/java/util/Optional.html
Je vois, je ne sais pas.
orElse(T other) Renvoie une valeur si elle existe, sinon elle en renvoie une autre.
orElseGet(Supplier<? extends T> other) Renvoie la valeur si elle existe, appelle autre dans le cas contraire et renvoie le résultat de cet appel.
Main.java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Optional.of("hoge").orElseGet(() -> {
System.out.println("Il n'est pas exécuté ou ElseGet");
return "";
});
Optional.empty().orElseGet(() -> {
System.out.println("C'est orElseGet d'être exécuté");
return "";
});
String piyo = (String)Optional.of("hoge").orElse("Ce n'est pas retourné ou sinon");
System.out.println("piyo: " + piyo);
String piyo2 = (String)Optional.empty().orElse("Il est retourné ou sinon");
System.out.println("piyo2: " + piyo2);
}
}
C'est orElseGet d'être exécuté piyo: hoge piyo2: Il est retourné ou sinon
orElse () est exécuté indépendamment du fait que le contenu de Optional soit nul, et oeElseGet () est exécuté uniquement lorsqu'il est nul.
--OrElse () est bon car il est inutile d'écrire une expression lambda juste pour renvoyer une constante comme "Si nul, renvoie un caractère vide ou zéro" --OrElseGet () dans le cas de "S'il est nul, effectuez un traitement et renvoyez le résultat"
Recommended Posts