Opsional didefinisikan sebagai kelas kontainer di java, atau lebih tepatnya, wadah dengan hanya satu elemen disimpan.
objek kontainer yang mungkin atau mungkin tidak mengandung nilai non-nol.
Struktur Kelas Opsional Properti Opsional
Kelas opsional berisi dua properti:
Atribut Kelas: Atribut Objek Kosong: Nilai
Atribut kosong digunakan untuk menyimpan objek opsional dengan nilai null.
Atribut nilai digunakan untuk menyimpan objek non-nol.
Metode opsional
Opsional memiliki dua metode konstruksi, yang keduanya dimodifikasi oleh pribadi.
private opsional () {this.value = null;} private opsional (nilai t) {this.value = objects.requirenonnull (value);}Metode konstruksi tanpa parameter digunakan untuk menginisialisasi kosong. Parameter konstruktor digunakan untuk menginisialisasi objek non-nol.
Karena konstruktor dimodifikasi menjadi pribadi, opsional hanya dapat memanggil objek melalui metode kelas jika ingin instantiate. Opsional menyediakan tiga metode kelas.
Kosong: Mengembalikan objek opsional dengan nilai null dari: Mengembalikan nilai non-null objek opsional nullable: Nilai nilai mengembalikan objek opsional yang sesuai sesuai dengan apakah parameternya nol atau tidak.
public static <T> Opsional <T> kosong () {opsional <T> t = (opsional <T>) kosong; return t;} public static <T> Opsional <T> dari (nilai t) {return new opsional <> (value);} public static <T> Opsional <T> ofNullable (nilai t) {value return == null? kosong (): dari (nilai);}Contoh Metode Pendahuluan
| metode | Tipe parameter | Tipe pengembalian | menjelaskan | |
|---|---|---|---|---|
| mendapatkan | tidak ada | T | Nilai melempar pengecualian nosucchelementException untuk nol | |
| isPresent | tidak ada | Boolean | Jika nilai nol, false akan dikembalikan | |
| Ifpresent | Konsumen <? super t> | ruang kosong | Jika instance opsional memiliki nilai, hubungi konsumen untuk itu, jika tidak, ia tidak akan diproses. | |
| menyaring | Predikat <? super t> | Opsional <t> | Jika nilai ada dan memenuhi predikat yang disediakan, objek opsional termasuk nilai dikembalikan; Kalau tidak, objek opsional kosong dikembalikan | |
| peta | Fungsi <? Super T ,? memperpanjang u> | Opsional <u> | Jika nilainya ada, panggilan fungsi pemetaan yang disediakan dijalankan pada nilai, dan objek <u> opsional dikembalikan. | |
| flatmap | Fungsi <? Super T, opsional <u>> | Opsional <u> | Jika nilainya ada, panggilan fungsi pemetaan yang disediakan dijalankan pada nilai, mengembalikan objek opsional non-null. | |
| orelse | T | T | Mengembalikannya jika ada nilai, jika tidak mengembalikan nilai default | |
| orelseget | Pemasok <? memperluas t> | T | Mengembalikan nilai jika ada nilai, jika tidak mengembalikan nilai yang dihasilkan oleh antarmuka pemasok yang ditentukan | |
| orelsethrow | Pemasok <? memperpanjang x> | <X Extends Throwable> | Mengembalikannya jika ada nilai, jika tidak, pengecualian yang dihasilkan oleh antarmuka pemasok yang ditentukan dilemparkan | |