Java a introduit une nouvelle classe facultative dans jdk8. Il s'agit d'une classe finale publique utilisée pour gérer NullPointerException dans une application Java. Vous devez importer le package java.util pour utiliser cette classe. Il fournit des méthodes utilisées pour vérifier la présence d’une valeur pour une variable particulière.
Méthodes de classe facultatives Java
Méthodes | Description |
---|---|
public static Facultatif vide() | Il renvoie un objet facultatif vide. Aucune valeur n'est présente pour cet facultatif. |
public static Facultatif de (valeur T) | Il renvoie un facultatif avec la valeur actuelle non nulle spécifiée. |
public static Facultatif de Nullable (valeur T) | Il renvoie un facultatif décrivant la valeur spécifiée, si elle n'est pas nulle, sinon renvoie un facultatif vide. |
public T obtenir() | Si une valeur est présente dans cet facultatif, renvoie la valeur, sinon lève NoSuchElementException. |
public booléen isPresent() | Il renvoie vrai si une valeur est présente, sinon faux. |
public void ifPresent (Consommateur consommateur) | Si une valeur est présente, invoquez le consommateur spécifié avec la valeur, sinon ne faites rien. |
public Filtre facultatif (Prédicat Prédicat) | Si une valeur est présente et que la valeur correspond au prédicat donné, renvoie un facultatif décrivant la valeur, sinon renvoie un facultatif vide. |
public Carte facultative (Mappeur de fonctions) | Si une valeur est présente, appliquez-lui la fonction de mappage fournie et si le résultat n'est pas nul, renvoyez un facultatif décrivant le résultat. Sinon, renvoie un facultatif vide. |
public FlatMap facultatif (Fonction super T,Optional mapper) | Si une valeur est présente, appliquez-lui la fonction de mappage facultative fournie, renvoyez ce résultat, sinon renvoyez un facultatif vide. |
public T ouElse(T autre) | Il renvoie la valeur si elle est présente, sinon elle en renvoie une autre. |
public T ouElseGet (Fournisseur autre) | Il renvoie la valeur si elle est présente, sinon invoquez autre et renvoie le résultat de cette invocation. |
public T orElseThrow (Supplier exceptionSupplier) lance X étend Throwable | Il renvoie la valeur contenue, si elle est présente, sinon lève une exception à créer par le fournisseur fourni. |
public booléen égal (Objet obj) | Indique si un autre objet est « égal à » cet facultatif ou non. L'autre objet est considéré comme égal si :
|
public int hashCode() | Il renvoie la valeur du code de hachage de la valeur actuelle, le cas échéant, ou renvoie 0 (zéro) si aucune valeur n'est présente. |
chaîne publique versString() | Il renvoie une représentation sous forme de chaîne non vide de cet facultatif adaptée au débogage. Le format de présentation exact n'est pas spécifié et peut varier selon les implémentations et les versions. |
Exemple : programme Java sans utiliser Facultatif
Dans l'exemple suivant, nous n'utilisons pas de classe facultative. Ce programme se termine anormalement et renvoie une nullPointerException.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Sortir:
convention de nom java
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Pour éviter une terminaison anormale, nous utilisons la classe Facultative. Dans l’exemple suivant, nous utilisons Facultatif. Ainsi, notre programme peut s'exécuter sans planter.
Exemple facultatif Java : si la valeur n'est pas présente
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // check for value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('string value is not present'); } }
Sortir:
string value is not present
Exemple facultatif Java : si la valeur est présente
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE';// Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // It Checks, value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('String value is not present'); } }
Sortir:
java optional class example
Un autre exemple Java facultatif
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); checkNull.ifPresent(System.out::println); // printing value by using method reference System.out.println(checkNull.get()); // printing value by using get method System.out.println(str[5].toLowerCase()); } }
Sortir:
convertir une chaîne en caractère
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Exemple de méthodes facultatives Java
import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index // It returns an empty instance of Optional class Optional empty = Optional.empty(); System.out.println(empty); // It returns a non-empty Optional Optional value = Optional.of(str[5]); // If value is present, it returns an Optional otherwise returns an empty Optional System.out.println('Filtered value: '+value.filter((s)->s.equals('Abc'))); System.out.println('Filtered value: '+value.filter((s)->s.equals('JAVA OPTIONAL CLASS EXAMPLE'))); // It returns value of an Optional. if value is not present, it throws an NoSuchElementException System.out.println('Getting value: '+value.get()); // It returns hashCode of the value System.out.println('Getting hashCode: '+value.hashCode()); // It returns true if value is present, otherwise false System.out.println('Is value present: '+value.isPresent()); // It returns non-empty Optional if value is present, otherwise returns an empty Optional System.out.println('Nullable Optional: '+Optional.ofNullable(str[5])); // It returns value if available, otherwise returns specified value, System.out.println('orElse: '+value.orElse('Value is not present')); System.out.println('orElse: '+empty.orElse('Value is not present')); value.ifPresent(System.out::println); // printing value by using method reference } }
Sortir:
Optional.empty Filtered value: Optional.empty Filtered value: Optional[JAVA OPTIONAL CLASS EXAMPLE] Getting value: JAVA OPTIONAL CLASS EXAMPLE Getting hashCode: -619947648 Is value present: true Nullable Optional: Optional[JAVA OPTIONAL CLASS EXAMPLE] orElse: JAVA OPTIONAL CLASS EXAMPLE orElse: Value is not present JAVA OPTIONAL CLASS EXAMPLE