Latest web development tutorials

Java 8 kelas Opsional

Java 8 fitur baru Java 8 fitur baru


kelas opsional adalah objek kontainer dapat null. Jika nilai ada metode isPresent () mengembalikan nilai true, memanggil metode get () mengembalikan objek.

Opsional adalah wadah itu bisa menahan nilai-nilai tipe T, atau hanya menyimpan nol. penawaran opsional banyak cara yang berguna, sehingga kita tidak melaksanakan deteksi nilai null eksplisit.

Pengenalan opsional kelas solusi yang baik untuk pengecualian pointer null.

kelas deklarasi

Berikut ini adalah pernyataanjava.util.Optional <T> kelas:

public final class Optional<T>
extends Object

metode kelas

Tidak. Metode & deskripsi
1 statis <T> Opsional <T> kosong ()

Kembali kosong misalnya Opsional.

2 boolean equals (Object obj)

Menentukan apakah objek lain sama Opsional.

3 Opsional <T> Filter (Predikat < ? Super <T> predikat)

Jika nilai ada, dan nilai ini sesuai dengan predikat yang diberikan, mengembalikan deskripsi Opsional untuk nilai ini, jika tidak maka kembali Opsional kosong.

4 <U> Opsional <U> flatMap (Function <? Super T, Opsional <U >> mapper)

Jika nilai ada, nilai kembali metode pemetaan opsional terkandung di dalam ini berdasarkan, jika tidak maka kembali kosong Opsional

5 T get ()

Jika Anda termasuk nilai di Opsional, nilai kembali ini, jika eksepsi dilemparkan: NoSuchElementException

6 int hashCode ()

Mengembalikan nilai kode hash ada, mengembalikan 0 jika nilai tidak ada.

7 kekosongan ifPresent (Consumer <? Super T > konsumen)

Jika nilai nilai sekarang digunakan untuk memanggil konsumen, jika tidak melakukan apa-apa.

8 isPresent boolean ()

Jika nilai ada metode mengembalikan nilai true, jika tidak kembali palsu.

9 <U> Opsional <U> peta (Function <? Super T,? Meluas U> mapper)

Jika nilai metode pemetaan, kehadiran yang disediakan, jika ia mengembalikan non-null, mengembalikan hasil deskripsi Opsional.

10 statis <T> Opsional <T> dari (nilai T)

Mengembalikan ditentukan nilai non-null Opsional.

11 statis <T> Opsional <T> ofNullable (nilai T)

Jika non-null, mengembalikan nilai tertentu yang dijelaskan Opsional, jika tidak kosong Opsional.

12 T OrElse (T lainnya)

Jika nilai ada, nilai kembali, jika tidak lain.

13 T orElseGet (Supplier <? Memperpanjang T > lainnya)

Jika nilai ada, nilai kembali, jika tidak memicu lainnya, dan mengembalikan hasil panggilan lainnya.

14 <X meluas Throwable> T orElseThrow ( Pemasok <? Memperpanjang X> exceptionSupplier)

Jika nilai hadir, nilai kembali berisi dinyatakan dilemparkan oleh Pemasok mewarisi kelainan

15 String toString ()

Mengembalikan sebuah string non-kosong Opsional, digunakan untuk debug

CATATAN: Metode ini diwarisi dari kelas java.lang.Objectdatang.


contoh opsional

Kita bisa melalui contoh berikut untuk lebih memahami penggunaan kelas Opsional:

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

Pelaksanaan script di atas, output:

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

Java 8 fitur baru Java 8 fitur baru