Maison >Java >javaDidacticiel >Introduction à l'utilisation de la nouvelle fonctionnalité de Java8 Facultatif (avec code)
Cet article vous présente une introduction à l'utilisation de la nouvelle fonctionnalité de Java8 Facultatif (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. . a aidé.
La classe Optionnelle
crée un facultatif pour une valeur non nulle. Si la valeur est nulle, une NullPointerException sera levée
Optional<Integer> optional = Optional.of(13); System.out.println(optional)
Optional<String> optional2 = Optional.ofNullable(null); System.out.println(optional2); optional2 = Optional.ofNullable("aaa"); System.out.println(optional2);3. isPresent renvoie vrai si la valeur existe, sinon renvoie faux.
Optional<String> optional2 = Optional.ofNullable(null); System.out.println(optional2); System.out.println(optional2.isPresent()); optional2 = Optional.ofNullable("aaa"); System.out.println(optional2); System.out.println(optional2.isPresent());4. getSi Facultatif a une valeur, renvoyez-la, sinon lancez NoSuchElementException.
optional2 = Optional.ofNullable("aaa"); System.out.println(optional2); System.out.println(optional2.isPresent()); System.out.println(optional2.get());5. ifPresentSi l'instance facultative a une valeur, appelez le consommateur pour celle-ci, sinon aucun traitement ne sera effectué. L'Ermite a porté un jugement nul parmi eux.
public static void main(String[] args) { String str1 = "hello"; String str2 = null; Optional<String> optional1 = Optional.ofNullable(str1); Optional<String> optional2 = Optional.ofNullable(str2); optional1.ifPresent(str->System.out.println(str.length())); optional2.ifPresent(str-> System.out.println(str.length())); }6. orElseS'il y a une valeur, renvoyez-la, sinon renvoyez l'autre valeur spécifiée.
public static void main(String[] args) { String str1 = "hello"; String str2 = null; Optional<String> optional1 = Optional.ofNullable(str1); Optional<String> optional2 = Optional.ofNullable(str2); System.out.println(optional1.orElse("默认字符串")); System.out.println(optional2.orElse("默认字符串")); }7. orElseGetorElseGet est similaire à la méthode orElse, la différence réside dans la valeur par défaut obtenue. La méthode orElse prend une valeur entrante comme valeur par défaut. La méthode orElseGet peut accepter l'implémentation de l'interface Fournisseur pour générer la valeur par défaut
public static void main(String[] args) { Integer i = 20; Optional<Integer> op = Optional.ofNullable(i); System.out.println(op.orElseGet(()->0)); System.out.println(Optional.ofNullable(null).orElseGet(()->0)); }8 orElseThrowS'il existe un. valeur, renvoyez-la, sinon une exception créée par l'interface du fournisseur est levée.
public static void main(String[] args) { // 自己指定异常 System.out.println((Optional.ofNullable("a").orElseThrow(()->new IndexOutOfBoundsException()))); System.out.println((Optional.ofNullable(null).orElseThrow(()->new IndexOutOfBoundsException()))); }9. mapmap gère la situation où il y a une valeur, exécutez la fonction dans le paramètre map pour obtenir la valeur de retour, sinon elle renvoie. un facultatif vide.
public static void main(String[] args) { List<String> list = new ArrayList<String>(){ { add("aaa"); add("bbb"); add(null); } }; list.stream().forEach(temp ->{ Optional<String> opt = Optional.ofNullable(temp); System.out.println(opt.map(n -> { return n.toUpperCase(); }).orElse("Nothing")); }); // 简写为如下形式 list.stream().forEach(temp->{ System.out.println(Optional.ofNullable(temp).map(n->n.toUpperCase()).orElse("Nothing")); }); }10. flatMapS'il y a une valeur, exécutez la fonction de mappage pour renvoyer une valeur de retour de type Facultatif, sinon renvoyez une valeur Facultative vide. flatMap est similaire à la méthode map(Funtion), la différence est que la valeur de retour du mappeur dans flatMap doit être facultative. À la fin de l'appel, flatMap n'encapsulera pas le résultat avec Facultatif. Vous pouvez utiliser le contenu
public static void main(String[] args) { Optional<String> opt1 = Optional.ofNullable("aaa"); Optional<String> opt2 = Optional.ofNullable(null); System.out.println(opt1.flatMap(n->{ return Optional.ofNullable(n.toUpperCase()); }).orElse("还会没有吗")); System.out.println( opt2.flatMap(n->{ return Optional.ofNullable(n.toUpperCase()); }).orElse("还会没有吗")); }11, filter S'il y a une valeur et que la condition d'assertion est remplie, un facultatif contenant la valeur est renvoyé, sinon un facultatif vide est renvoyé.
public static void main(String[] args) { Optional<String> opt1 = Optional.ofNullable("aabbbbaa"); Optional<String> opt2 = Optional.ofNullable(null); System.out.println(opt1.filter(value->value.length()>6)); System.out.println(opt2.filter(value->value.length()>6)); }Bon, c'est tout pour l'introduction d'Optional, une nouvelle fonctionnalité de Java 8.
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!