Java8 pour démarrer maintenant ~ Facultatif ~

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 `est un type qui peut ou non avoir une chaîne

Générer facultatif

N'a aucune valeur

Optional emptyCase = Optional.empty();

Générer un facultatif vide

Doit avoir une valeur

Optional presentCase = Optional.of("example");

Générer facultatif avec valeur Si vous passez null comme argument, vous obtiendrez une NullPointerException

Peut ou peut ne pas avoir de valeur

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

Utilisation facultative

Déterminez s'il y a une valeur

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

Obtenez la valeur

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.

Utilisez la valeur

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

Java8 pour démarrer maintenant ~ Facultatif ~
Java 8 ~ Stream API ~ pour commencer maintenant
Java 8 pour démarrer maintenant ~ API de date et d'heure ~
Comment utiliser java Facultatif
Java, interface pour partir du débutant
Java, des tableaux pour débuter avec les débutants
J'ai essayé de résumer Java 8 maintenant
Remplacez List <Optional <T >> par Optional <List <T >> en Java
Introduction à Java
[Java] Découvrez comment utiliser correctement Optional
[Java] Mémorandum facultatif
Java 9 Facultatif :: stream
Deux façons de démarrer un thread en Java + @
Changements de Java 8 à Java 11
Somme de Java_1 à 100
[Java] Connectez-vous à MySQL
Afficher la documentation Java de Java Facultatif
Améliorations de Kotlin à Java
De Java à Ruby !!
Consultez les annotations Java maintenant
Introduction à la commande java
Fonctionnalités susceptibles d'entrer dans Java 10 pour le moment
~ J'ai essayé d'apprendre la programmation fonctionnelle avec Java maintenant ~
[Java] Plates-formes parmi lesquelles choisir pour le développement Java à partir de maintenant (2020)
[Java] Comment rompre une ligne avec StringBuilder
Comment abaisser la version java
Migration de Cobol vers JAVA
[Java] Comment utiliser Map
Java ajoute un tableau au PDF
Réécrire Java try-catch avec facultatif
Comment désinstaller Java 8 (Mac)
Java pour jouer avec Function
Java - Comment créer JTable
Spring + Gradle + Java Quick Start
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
Comment réduire les images Java
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
[Java] Introduction à l'expression lambda
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Shell pour tuer les processus Java
J'ai essayé de faire coexister Java Optional et la clause de garde
Comment définir des constantes Java
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
[java] Raisons d'utiliser statique
Comment utiliser les variables Java
[Java] Introduction à l'API Stream
Comment convertir la base Java
[Java] Convertir ArrayList en tableau
Un mémo pour démarrer la programmation Java avec VS Code (version 2020-04)
Thread Java pour comprendre vaguement
[Java] Comment implémenter le multithreading
Comment utiliser Lombok maintenant
Comparez Java 8 en option avec Swift