Maison >Java >javaDidacticiel >Classe facultative dans Java 8 : Comment gérer des valeurs éventuellement nulles à l'aide de la méthode orElseThrow()

Classe facultative dans Java 8 : Comment gérer des valeurs éventuellement nulles à l'aide de la méthode orElseThrow()

WBOY
WBOYoriginal
2023-07-30 13:57:133036parcourir

Classe facultative en Java 8 : Comment utiliser la méthode orElseThrow() pour gérer des valeurs éventuellement nulles

Introduction :
Dans le développement Java, nous rencontrons souvent des situations où nous traitons de valeurs éventuellement nulles. Dans les versions antérieures de Java, nous utilisions généralement null pour indiquer l'absence de valeur. Cependant, l'utilisation de null pose certains problèmes. Par exemple, nous devons fréquemment déterminer s'il est nul, et des exceptions de pointeur nul sont susceptibles de se produire. Pour résoudre ces problèmes, Java 8 a introduit la classe Optionnel. La classe Optionnel fournit un moyen élégant de gérer les valeurs potentiellement nulles.
Cet article présentera orElseThrow(), une méthode importante de la classe Facultative, et démontrera son utilisation à travers un exemple de code.

Utilisation de base de la classe Optionnel : La classe
Optional est une classe conteneur introduite dans Java 8, utilisée pour envelopper une valeur qui peut être nulle. Il fournit quelques méthodes pour nous aider à gérer les situations de valeurs nulles. Tout d’abord, examinons l’utilisation de base de la classe Optionnel.

  1. Création d'objets facultatifs
    Vous pouvez créer des objets facultatifs via la méthode statique Optionnel.ofNullable (valeur T). Si la valeur est nulle, un objet facultatif vide est créé ; si la valeur n'est pas nulle, un objet facultatif contenant la valeur est créé.

Exemple de code :

String name = "Alice";
Optional<String> optionalName = Optional.ofNullable(name);

// 另一种方式创建空的 Optional
Optional<String> emptyOptional = Optional.empty();
  1. Déterminez si Facultatif a une valeur
    Vous pouvez déterminer s'il existe une valeur en appelant la méthode isPresent() de l'objet Facultatif. Cette méthode renvoie une valeur booléenne indiquant si l'objet facultatif contient une valeur non nulle.

Exemple de code :

if (optionalName.isPresent()) {
    System.out.println("存在值");
} else {
    System.out.println("值为空");
}
  1. Obtenir la valeur de Facultatif
    Vous pouvez obtenir sa valeur en appelant la méthode get() de l'objet Facultatif. Mais avant d'appeler la méthode get(), il est préférable d'utiliser la méthode isPresent() pour déterminer si l'Optionnel existe. Parce que si Facultatif est vide, l’appel de la méthode get() lèvera une exception NoSuchElementException.

Exemple de code :

if (optionalName.isPresent()) {
    System.out.println("姓名为:" + optionalName.get());
} else {
    System.out.println("姓名为空");
}

Utilisation de orElseThrow() :
En plus de l'utilisation de base ci-dessus, la classe Facultative fournit également une méthode puissante orElseThrow(). Cette méthode lèvera l'exception spécifiée lorsque l'objet facultatif ne contient pas de valeur.

  1. Utilisez la méthode orElseThrow() pour lever des exceptions
    Vous pouvez spécifier l'exception à lever en appelant la méthode orElseThrow(Suppliered2cfe1064f65ed1a38f9e2ed43b9db6 exceptionSupplier) de l'objet facultatif. Notez que ce qui est transmis ici est une référence de méthode de constructeur anormale.

Exemple de code :

Double price = null;
Double finalPrice = Optional.ofNullable(price)
        .orElseThrow(() -> new IllegalArgumentException("价格为空"));

System.out.println("最终价格为:" + finalPrice);

Dans le code ci-dessus, si le prix est vide, une IllegalArgumentException sera levée.

  1. Classe d'exception personnalisée
    Nous pouvons également personnaliser une classe d'exception pour gérer des exceptions spécifiques.

Exemple de code :

class PriceNullException extends RuntimeException {
    public PriceNullException(String message) {
        super(message);
    }
}

Double price = null;
Double finalPrice = Optional.ofNullable(price)
        .orElseThrow(() -> new PriceNullException("价格为空"));

System.out.println("最终价格为:" + finalPrice);

Dans le code ci-dessus, si le prix est vide, une exception PriceNullException personnalisée sera levée.

  1. Méthode orElseThrow() par rapport à d'autres méthodes
    Par rapport à la méthode get() précédente, la méthode orElseThrow() ne lancera pas d'exception NoSuchElementException lorsque l'Optionnel est vide, mais peut lancer une exception personnalisée. Cela rend le code plus propre et plus lisible.

Conclusion :
Cet article présente comment utiliser la méthode orElseThrow() de la classe facultative dans Java 8 et montre comment gérer des valeurs éventuellement nulles à travers des exemples de code. L'utilisation de la classe Optionnel peut rendre notre code plus stable et plus sûr, et réduire la fréquence des exceptions de pointeur nul. Cependant, vous devez également faire attention à ne pas en faire trop lorsque vous utilisez des classes facultatives, de peur que le code ne devienne verbeux et difficile à comprendre. J'espère que cet article pourra aider les lecteurs à mieux comprendre et utiliser la classe facultative.

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