Latest web development tutorials

Java 8 classi opzionali

Java 8 nuove funzionalità Java 8 nuove funzionalità


classe opzionale è un oggetto contenitore può essere un nullo. Se il valore esiste metodo di isPresent () restituisce true, chiamare il metodo get () restituisce l'oggetto.

Opzionale è un contenitore: può contenere valori di tipo T, o semplicemente salvare nulla. offerte opzionali molti modi utili, in modo che non effettuano un rilevamento esplicito valore nullo.

introduzione facoltativa di classe una buona soluzione per un'eccezione di puntatore nullo.

dichiarazione di classe

Quanto segue è una dichiarazionejava.util.Optional <T> classe:

public final class Optional<T>
extends Object

I metodi di classe

No. Metodo & descrizione
1 static <T> opzionale <T> vuoto ()

Torna esempio opzionale vuoto.

2 boolean equals (obj Object)

Determinare se un altro oggetto è uguale opzionale.

3 Opzionale <T> Filtro (Predicate < ? Super <T> predicato)

Se il valore esiste, e questo valore corrisponde alla data predicato, restituisce una descrizione facoltativa per questo valore, altrimenti restituisce un optional vuoto.

4 <U> opzionale <U> flatMap (Funzione <? Super T, opzionale <U >> mapper)

Se il valore esiste, il metodo di mappatura valore di ritorno opzionale ivi contenute si basano, in caso contrario restituisce un vuoto opzionale

5 get T ()

Se si include il valore in questo, il valore di ritorno opzionale, altrimenti viene generata un'eccezione: NoSuchElementException

6 int hashCode ()

Restituisce il valore esiste codice hash, restituisce 0 se il valore non esiste.

7 ifPresent void (consumatori <? Super T > consumatore)

Se è il valore attuale viene utilizzato il valore di chiamare dei consumatori, altrimenti non fare nulla.

8 isPresent booleano ()

Se il valore esiste metodo restituisce vero, altrimenti restituisce false.

9 <U> opzionale <U> mappa (Funzione <? Super T,? Si estende U> mapper)

Se il valore del metodo di mappatura, la presenza disponibile, se restituisce un non-null, restituisce un risultato descrizione opzionale.

10 static <T> <T> opzionale di (valore T)

Restituisce un valore non nullo opzionale specificato.

11 static <T> opzionale <T> ofNullable (valore T)

Se non nullo, restituisce il valore specificato descritto opzionale, altrimenti vuoto opzionale.

12 T OrElse (T altro)

Se il valore esiste, il valore restituito, altrimenti altro.

13 T orElseGet (Fornitore <? Estende T > altro)

Se il valore esiste, il valore di ritorno, altrimenti attivare altri, e restituisce il risultato altra chiamata.

14 <X estende Throwable> T orElseThrow ( Fornitore <? Estende X> exceptionSupplier)

Se il valore è presente, il valore di ritorno contiene altrimenti gettato dal fornitore ereditato anomalie

15 String toString ()

Restituisce una stringa non vuota opzionale, utilizzato per eseguire il debug

NOTA: Questi metodi sono ereditati dalla classe Objectvenire.


esempi opzionali

Siamo in grado attraverso i seguenti esempi per comprendere meglio l'uso delle classi opzionali:

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;
   }
}

L'attuazione del script di cui sopra, l'uscita è:

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

Java 8 nuove funzionalità Java 8 nuove funzionalità