Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Menguasai Java 8 Optional: Panduan Praktis Kode Aman dari Null

Optional adalah objek wadah yang digunakan untuk menyimpan objek non-null. Objek Optional digunakan untuk mewakili null dengan nilai yang tidak tersedia. Kelas ini menyediakan berbagai metode utilitas untuk memfasilitasi kode dalam menangani nilai sebagai “tersedia” atau “tidak tersedia”, alih-alih terus-menerus memeriksa nilai null. Optional diperkenalkan pada Java 8 dan memiliki konsep yang mirip dengan Optional di Guava.

Deklarasi Kelas

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

public final class Optional<T> extends Object

Metode Kelas

No.Metode & Deskripsi
1

static <T> Optional<T> empty()

Mengembalikan instance Optional kosong.

2

boolean equals(Object obj)

Menunjukkan apakah objek lain “sama dengan” Optional ini.

3

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

Jika nilai tersedia dan sesuai dengan predikat yang diberikan, mengembalikan Optional yang mendeskripsikan nilai tersebut; sebaliknya, mengembalikan Optional kosong.

4

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

Jika nilai tersedia, menerapkan fungsi pemetaan yang membawa Optional ke nilai tersebut, mengembalikan hasilnya; sebaliknya, mengembalikan Optional kosong.

5

T get()

Jika nilai tersedia dalam Optional ini, mengembalikan nilai tersebut; sebaliknya, melempar NoSuchElementException.

6

int hashCode()

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

7

void ifPresent(Consumer<? super T> consumer)

Jika nilai tersedia, memanggil consumer yang ditentukan dengan nilai tersebut; sebaliknya, tidak melakukan apa pun.

8

boolean isPresent()

Mengembalikan true jika ada nilai yang tersedia, sebaliknya false.

9

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

Jika nilai tersedia, menerapkan fungsi pemetaan yang diberikan; jika hasilnya non-null, mengembalikan Optional yang mendeskripsikan hasil tersebut.

10

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

Mengembalikan Optional dengan nilai non-null yang ditentukan dan tersedia.

11

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

Mengembalikan Optional yang mendeskripsikan nilai yang ditentukan, jika non-null; sebaliknya, mengembalikan Optional kosong.

12

T orElse(T other)

Mengembalikan nilai jika tersedia; sebaliknya, mengembalikan other.

13

T orElseGet(Supplier<? extends T> other)

Mengembalikan nilai jika tersedia; sebaliknya, memanggil other dan mengembalikan hasil pemanggilan tersebut.

14

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

Mengembalikan nilai yang terkandung, jika tersedia; sebaliknya, melempar pengecualian yang dibuat oleh supplier yang disediakan.

15

String toString()

Mengembalikan representasi string non-kosong dari Optional ini yang cocok untuk proses debug.

Kelas ini mewarisi metode dari kelas berikut:

Contoh Optional

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

Java8Tester.java

Live Demo
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 - mengizinkan parameter yang diterima bernilai null.
        Optional<Integer> a = Optional.ofNullable(value1);
        //Optional.of - melempar NullPointerException jika parameter yang diterima bernilai 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 - memeriksa apakah nilai tersedia atau tidak
        System.out.println("First parameter is present: " + a.isPresent());
        System.out.println("Second parameter is present: " + b.isPresent());
        //Optional.orElse - mengembalikan nilai jika tersedia, sebaliknya mengembalikan
        //nilai default yang diteruskan.
        Integer value1 = a.orElse(new Integer(0));
        //Optional.get - mengambil nilai, nilai harus tersedia
        Integer value2 = b.get();
        return value1 + value2;
    }
}

Verifikasi Hasil

Kompilasi kelas menggunakan kompiler javac sebagai berikut:

C:\JAVA>javac Java8Tester.java

Sekarang jalankan Java8Tester sebagai berikut:

C:\JAVA>java Java8Tester

Hasil yang diharapkan adalah sebagai berikut:

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

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  4. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  5. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  6. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  7. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  8. Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe
  9. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan
  10. Meningkatkan Java 9: Fitur Baru untuk Kelas Optional