Latest web development tutorials

Java 8 classes optionnelles

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités


classe en option est un objet conteneur peut être une valeur nulle. Si la valeur existe méthode IsPresent () retourne true, appelez la méthode get () retourne l'objet.

Facultatif est un conteneur: il peut contenir des valeurs de type T, ou simplement enregistrer null. offres optionnelles de nombreuses applications utiles, donc nous ne procèdent pas à une détection explicite de valeur nulle.

l'introduction facultative de classe une bonne solution à une exception de pointeur nul.

Déclaration de classe

Ce qui suit est une déclarationjava.util.Optional <T> class:

public final class Optional<T>
extends Object

Les méthodes de classe

Non. Méthode & Description
1 static <T> Facultatif <T> vide ()

Retour vide instance en option.

2 boolean equals (Object obj)

Déterminer si un autre objet est égal facultatif.

3 Enoption <T> Filtre (Predicate < ? Super <T> prédicat)

Si la valeur existe, et cette valeur correspond au prédicat donné, renvoie une description facultative pour cette valeur, sinon elle renvoie une option vide.

4 <U> Facultatif <U> flatMap (Fonction <? Super T, en option <U >> mappeur)

Si la valeur existe, la méthode de cartographie de la valeur de retour en option contenue dans ce document est basée, sinon il renvoie un vide en option

5 T get ()

Si vous incluez la valeur dans ce domaine, la valeur de retour en option, sinon une exception est levée: NoSuchElementException

6 int hashCode ()

Renvoie la valeur de code de hachage existe, renvoie 0 si la valeur n'existe pas.

7 IfPresent void (Consumer <? super - T> consommateur)

Si la valeur est la valeur actuelle est utilisée pour appeler le consommateur, sinon ne rien faire.

8 IsPresent booléen ()

Si la valeur existe méthode renvoie true, sinon retourne false.

9 <U> Facultatif <U> carte (Fonction <? Super T, U? Étend> mappeur)

Si la valeur de la méthode de cartographie, la présence prévue, si elle renvoie une non-null, retourne un résultat Description facultative.

10 <T> Facultatif <T> statique de (valeur T)

Renvoie une valeur non nulle en option spécifiée.

11 static <T> Facultatif <T> ofNullable (valeur T)

Si non nul, renvoie la valeur spécifiée décrite en option, sinon vide facultatif.

12 T OrElse (T autre)

Si la valeur existe, la valeur de retour, sinon d'autres.

13 T orElseGet (Fournisseur <? Prolonge T > autre)

Si la valeur existe, la valeur de retour, sinon déclencher d'autres, et renvoie le résultat autre appel.

14 <X étend Throwable> T orElseThrow ( Fournisseur <? Étend X> exceptionSupplier)

Si la valeur est présente, la valeur de retour contient autrement jeté par le fournisseur hérité des anomalies

15 String toString ()

Renvoie une chaîne non vide en option, utilisé pour déboguer

NOTE: Ces méthodes sont héritées de la classe java.lang.Objectvenir.


exemples facultatifs

Nous pouvons à travers les exemples suivants afin de mieux comprendre l'utilisation des classes optionnelles:

import java.util.Optional;

public class Java8Tester {
   public static void main(String args[]){
   
      Java8Tester java8Tester = new Java8Tester();
      Integer value1 = null;
      Integer value2 = new Integer(10);
		
      // Optional.ofNullable - 允许传递为 null 参数
      Optional<Integer> a = Optional.ofNullable(value1);
		
      // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
	
   public Integer sum(Optional<Integer> a, Optional<Integer> b){
	
      // Optional.isPresent - 判断值是否存在
		
      System.out.println("第一个参数值存在: " + a.isPresent());
      System.out.println("第二个参数值存在: " + b.isPresent());
		
      // Optional.orElse - 如果值存在,返回它,否则返回默认值
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - 获取值,值需要存在
      Integer value2 = b.get();
      return value1 + value2;
   }
}

Mise en œuvre du script ci-dessus, la sortie est:

$ javac Java8Tester.java 
$ java Java8Tester
第一个参数值存在: false
第二个参数值存在: true
10

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités