Facultatif est défini comme une classe de conteneurs en Java, ou plutôt, un conteneur avec un seul élément est stocké.
objet de conteneur qui peut contenir ou non une valeur non nulle.
Structure de classe optionnelle Propriétés facultatives
La classe facultative contient deux propriétés:
Attribut de classe: attribut d'objet vide: valeur
L'attribut vide est utilisé pour stocker un objet facultatif avec une valeur null.
L'attribut de valeur est utilisé pour stocker des objets non nuls.
Méthode facultative
Facultatif a deux méthodes de construction, toutes deux modifiées par privé.
Private Facultatif () {this.value = null;} Private Facultatif (TAVALE T) {this.value = objets.RequiRenonnull (valeur);}La méthode de construction sans paramètres est utilisée pour initialiser vide. Le constructeur de paramètres est utilisé pour initialiser les objets non nuls.
Parce que le constructeur est modifié pour être privé, facultatif ne peut appeler des objets que via des méthodes de classe si elle veut instancier. Facultatif fournit trois méthodes de classe.
VIDE: Renvoie l'objet facultatif avec la valeur NULL de: Renvoie la valeur de l'objet non nul de l'objet facultatif: la valeur de la valeur renvoie l'objet facultatif correspondant en fonction du fait que le paramètre est nul ou non.
public static <T> Facultatif <T> vide () {Facultatif <T> T = (Facultatif <T>) vide; return t;} public static <T> Facultatif <T> of (t Value) {return new Facultatif <> (value);} public static <T> Facultatif <T> OF Nullable (tale) {return value == null? vide (): de (valeur);}Exemple de méthode Introduction
| méthode | Type de paramètre | Type de retour | illustrer | |
|---|---|---|---|---|
| obtenir | aucun | T | Valeur lève l'exception NosucChelementException pour null | |
| reproduire | aucun | booléen | Si la valeur est nul, false sera renvoyé | |
| siprents | Consommateur <? super t> | vide | Si l'instance facultative a une valeur, appelez le consommateur pour lui, sinon il ne sera pas traité. | |
| filtre | Prédicat <? super t> | Facultatif <T> | Si la valeur existe et satisfait le prédicat fourni, un objet facultatif comprenant la valeur est renvoyé; Sinon, un objet facultatif vide est renvoyé | |
| carte | Fonction <? Super T ,? étend u> | Facultatif <u> | Si la valeur existe, l'appel de fonction de mappage fourni est exécuté sur la valeur et l'objet <u> Facultatif est renvoyé. | |
| mouche à plat | Fonction <? Super T, facultatif <u>> | Facultatif <u> | Si la valeur existe, l'appel de fonction de mappage fourni est exécuté sur la valeur, renvoyant un objet facultatif non nulle. | |
| orelse | T | T | Renvoyez-le s'il y a une valeur, sinon renvoyez une valeur par défaut | |
| orelseget | Fournisseur <? étend t> | T | Renvoie la valeur en cas de valeur, sinon renvoie une valeur générée par l'interface du fournisseur spécifié | |
| orellethrow | Fournisseur <? étend x> | <X s'étend sur le jetable> | Renvoyez-le s'il y a une valeur, sinon une exception générée par l'interface du fournisseur spécifié est lancée | |