Maison  >  Article  >  Java  >  Classe facultative dans Java 8 : Comment filtrer les valeurs éventuellement nulles à l'aide de la méthode filter()

Classe facultative dans Java 8 : Comment filtrer les valeurs éventuellement nulles à l'aide de la méthode filter()

王林
王林original
2023-08-01 17:27:231460parcourir

Classe facultative en Java 8 : Comment filtrer les valeurs potentiellement nulles à l'aide de la méthode filter()

En Java 8, la classe facultative est un outil très utile qui nous permet de mieux gérer les valeurs nulles possibles et d'éviter qu'une NullPointerException ne se produise . La classe Optionnel fournit de nombreuses méthodes pour manipuler les valeurs nulles potentielles, l'une des méthodes importantes est filter(). La fonction de la méthode

filter() est que si la valeur de l'objet Optionnel existe et remplit les conditions données, l'objet Optionnel lui-même est renvoyé si la valeur n'existe pas ou si les conditions ne sont pas remplies, un objet Optionnel vide ; est retourné.

L'exemple de code suivant montre comment utiliser la méthode filter() pour filtrer des valeurs potentiellement nulles :

import java.util.Optional;

public class OptionalFilterExample {

    public static void main(String[] args) {
        String name = "John Doe";
        Optional<String> nameOptional = Optional.ofNullable(name);

        // 使用filter()方法过滤值为空的Optional对象
        Optional<String> filteredOptional = nameOptional.filter(n -> n.length() > 5);

        if (filteredOptional.isPresent()) {
            System.out.println("Name is longer than 5 characters");
        } else {
            System.out.println("Name is either null or shorter than 5 characters");
        }
    }
}

Dans l'exemple ci-dessus, nous créons d'abord un nom d'objet facultatif non nul avec la valeur "John Doe". Ensuite, nous utilisons la méthode filter(), en lui passant la condition n -> n.length() > 5. Cette condition vérifie si la longueur de la chaîne est supérieure à 5. Si la condition est remplie, la méthode filter() renvoie un objet facultatif contenant la même valeur ; sinon, elle renvoie un objet facultatif vide ;

Enfin, nous utilisons la méthode isPresent() pour vérifier si l'objet facultatif filtré contient une valeur et générons les informations correspondantes en fonction du résultat.

Dans le développement réel, nous devons souvent filtrer les valeurs qui peuvent être vides. En utilisant la méthode filter(), nous pouvons accomplir cette tâche de manière concise. Voici un autre exemple qui montre comment filtrer les entiers supérieurs à 10 dans une liste :

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class OptionalFilterListExample {

    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(15);
        numbers.add(8);
        numbers.add(20);

        List<Integer> filteredNumbers = new ArrayList<>();

        for (Integer number : numbers) {
            Optional<Integer> optionalNumber = Optional.ofNullable(number);
            optionalNumber.filter(n -> n > 10).ifPresent(filteredNumbers::add);
        }

        System.out.println(filteredNumbers);
    }
}

Dans l'exemple ci-dessus, nous avons d'abord créé une liste d'entiers, des nombres, qui contient des nombres. Nous utilisons ensuite une boucle for-each pour parcourir chaque élément de la liste et les envelopper dans des objets facultatifs.

Ensuite, nous utilisons la méthode filter() pour filtrer les nombres supérieurs à 10, et utilisons la méthode ifPresent() pour ajouter les nombres filtrés à la liste filteredNumbers.

Enfin, nous générons la liste filteredNumbers, qui contient tous les nombres filtrés.

En utilisant la méthode filter() de la classe Optionnel, nous pouvons filtrer les valeurs nulles possibles de manière plus concise, évitant ainsi les vérifications nulles fastidieuses et les situations pouvant provoquer NullPointerException. Cela rend notre code plus robuste et plus lisible. Il est recommandé d'utiliser pleinement diverses méthodes de la classe Optionnel dans le développement pour améliorer la qualité du code et l'efficacité du développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn