Java 8 - Kelas Opsional

Opsional adalah objek kontainer yang digunakan untuk memuat objek bukan-null. Objek opsional digunakan untuk mewakili null dengan nilai yang tidak ada. Kelas ini memiliki berbagai metode utilitas untuk memfasilitasi kode untuk menangani nilai sebagai 'tersedia' atau 'tidak tersedia' alih-alih memeriksa nilai null. Ini diperkenalkan di Java 8 dan mirip dengan Opsional di Guava.

Deklarasi Kelas

Berikut adalah deklarasi untuk java.util.Optional<T> kelas -

public final class Optional<T> extends Object

Metode Kelas

Sr.No. Metode & Deskripsi
1

static <T> Optional<T> empty()

Mengembalikan contoh opsional kosong.

2

boolean equals(Object obj)

Menunjukkan apakah beberapa objek lain "sama dengan" Opsional ini.

3

Optional<T> filter(Predicate<? super <T> predicate)

Jika ada nilai dan nilainya cocok dengan predikat yang diberikan, ia mengembalikan Opsional yang mendeskripsikan nilai, jika tidak, mengembalikan Opsional kosong.

4

<U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)

Jika ada nilai, itu menerapkan fungsi pemetaan bantalan Opsional yang disediakan padanya, mengembalikan hasil itu, jika tidak mengembalikan Opsional kosong.

5

T get()

Jika ada nilai dalam Opsional ini, kembalikan nilainya, jika tidak, akan muncul NoSuchElementException.

6

int hashCode()

Mengembalikan nilai kode hash dari nilai sekarang, jika ada, atau 0 (nol) jika tidak ada nilai.

7

void ifPresent(Consumer<? super T> consumer)

Jika ada nilai, itu memanggil konsumen yang ditentukan dengan nilai tersebut, jika tidak tidak apa-apa.

8

boolean isPresent()

Mengembalikan nilai benar jika ada nilai, jika tidak salah.

9

<U>Optional<U> map(Function<? super T,? extends U> mapper)

Jika ada nilai, terapkan fungsi pemetaan yang disediakan padanya, dan jika hasilnya bukan nol, kembalikan Opsional yang mendeskripsikan hasilnya.

10

static <T> Optional<T> of(T value)

Mengembalikan Opsional dengan nilai bukan nol saat ini yang ditentukan.

11

static <T> Optional<T> ofNullable(T value)

Mengembalikan Opsional yang mendeskripsikan nilai yang ditentukan, jika bukan nol, jika tidak, mengembalikan Opsional kosong.

12

T orElse(T other)

Mengembalikan nilai jika ada, jika tidak mengembalikan lainnya.

13

T orElseGet(Supplier<? extends T> other)

Mengembalikan nilai jika ada, jika tidak memanggil yang lain dan mengembalikan hasil dari pemanggilan itu.

14

<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier)

Mengembalikan nilai yang terkandung, jika ada, jika tidak melempar pengecualian untuk dibuat oleh pemasok yang disediakan.

15

String toString()

Mengembalikan representasi string yang tidak kosong dari Opsional ini yang cocok untuk debugging.

Kelas ini mewarisi metode dari kelas berikut -

  • java.lang.Object

Contoh Opsional

Buat program Java berikut menggunakan editor pilihan Anda di, misalnya, C: \> JAVA.

Java8Tester.java

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 - allows passed parameter to be null.
      Optional<Integer> a = Optional.ofNullable(value1);
		
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
	
   public Integer sum(Optional<Integer> a, Optional<Integer> b) {
      //Optional.isPresent - checks the value is present or not
		
      System.out.println("First parameter is present: " + a.isPresent());
      System.out.println("Second parameter is present: " + b.isPresent());
		
      //Optional.orElse - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();
      return value1 + value2;
   }
}

Verifikasi Hasilnya

Kompilasi kelas menggunakan javac kompiler sebagai berikut -

C:\JAVA>javac Java8Tester.java

Sekarang jalankan Java8Tester sebagai berikut -

C:\JAVA>java Java8Tester

Ini harus menghasilkan keluaran berikut -

First parameter is present: false
Second parameter is present: true
10