Partie 1: Java8 pour démarrer maintenant ~ for Each et expression lambda ~ Partie 2: Java 8 ~ Stream API ~ pour démarrer maintenant Le troisième: Java8 pour démarrer maintenant-date et heure API-
Facultatif est une classe qui gère les éléments qui peuvent ou non avoir des valeurs non nulles.
ʻOptional
Optional emptyCase = Optional.empty();
Générer un facultatif vide
Optional presentCase = Optional.of("example");
Générer facultatif avec valeur Si vous passez null comme argument, vous obtiendrez une NullPointerException
Optional nullableNullCase = Optiona.ofNullable(null);
Optional nullableNotNullCase = Optiona.ofNullable("example");
Génère un optionnel vide si l'argument est nul, sinon crée un optionnel avec la valeur de l'argument
isPresent Renvoie vrai s'il a une valeur, faux sinon
Optional presentCase = Optional.of("example");
presentCase.isPresent(); // true
Optional emptyCase = Optional.empty();
emptyCase.isPresent(); // false
ifPresent S'il a une valeur, il exécute l'argument Consumer avec la valeur comme argument, sinon il ne fait rien.
Optional presentCase = Optional.of("example");
presentCase.ifPresent(s -> {System.out.println(s)}); //Vers la sortie standard"example"Et sortie
Optional emptyCase = Optional.empty();
emptyCase.ifPresent(s -> {System.out.println(s)}); //ne fais rien
get
S'il a une valeur, il renvoie cette valeur, sinon il lance une exception NoSuchElementException
Optional presentCase = Optional.of("example");
presentCase.get(); // example
Optional emptyCase = Optional.empty();
emptyCase.get(); //NoSuchElementException se produit
À utiliser si vous pensez avoir une valeur Si vous n'avez pas de valeur et que vous souhaitez utiliser la valeur par défaut, vous devez utiliser le ʻou Sinon` suivant
orElse S'il a une valeur, il renvoie cette valeur, sinon il renvoie la valeur spécifiée par l'argument.
Optional presentCase = Optional.of("example");
presentCase.orElse("default"); // example
Optional emptyCase = Optional.empty();
emptyCase.orElse("default"); // default
orElseGet S'il a une valeur, il renvoie cette valeur, sinon il renvoie le résultat du fournisseur spécifié par l'argument.
Optional presentCase = Optional.of("example");
presentCase.orElseGet(() -> {"default"}); // example
Optional emptyCase = Optional.empty();
emptyCase.orElseGet(() -> {"default"}); // default
La différence avec ʻou Else` est de savoir si vous transmettez directement la valeur par défaut ou l'exprimez dans une expression lambda.
orElseThrow S'il a une valeur, il renvoie cette valeur, sinon il lève une exception avec le fournisseur spécifié par l'argument.
map S'il a une valeur, il applique la fonction de mappage d'argument à cette valeur et renvoie un facultatif qui décrit le résultat si le résultat n'est pas nul. Sinon, il renvoie une option vide
Optional<String> presentCase = Optional.of("example,1,exp");
Optional<String[]> result = presentCase.map(name -> name.split(",")); // [example, 1, exp]
Optional<String> emptyCase = Optional.empty();
Optional<String[]> result = emptyCase .map(name -> name.split(",")); //Vide facultatif
filter Fonctionne comme un filtre API Stream Renvoie l'original Facultatif si la condition d'expression lambda de l'argument est remplie, sinon renvoie une option vide
Optional<String> presentCase =Optional.of("example");
Optional<String> match = presentCase.filter(exp -> exp.length() == 7); // "example"
Optional<String> notMatch = presentCase.filter(exp -> exp.length() != 7); //Vide facultatif
Recommended Posts