Kelas Pilihan dalam Java menyediakan kaedah mudah untuk mengendalikan dan mengembalikan nilai yang mungkin atau mungkin tidak hadir. Dua kaedah penting dalam kelas ini ialah orElse() dan orElseGet(). Perbezaan utama antara kaedah ini terletak pada masa apabila nilai sandaran atau pengiraan digunakan.
Kaedah orElse() mengambil nilai lalai sebagai hujah dan mengembalikannya nilai jika contoh Pilihan kosong. Ia tidak menunggu isPresent() untuk dinilai, tetapi dengan serta-merta menilai dan mengembalikan nilai sandaran yang disediakan, walaupun contoh Pilihan tidak kosong.
Sebaliknya, kaedah orElseGet() mengambil antara muka Pembekal sebagai hujah, membolehkan anda mentakrifkan pengiraan yang hanya berjalan apabila tika Pilihan kosong. Pendekatan ini lebih cekap apabila nilai sandaran mahal untuk dikira dan hanya perlu dilakukan apabila perlu.
Pertimbangkan untuk menggunakan orElseGet() dan bukannya orElse() dalam senario berikut:
Pertimbangkan contoh berikut:
<code class="java">Optional<String> optional = Optional.ofNullable("Hello"); // Always computes the fallback value. String result1 = optional.orElse("World"); // Computes the fallback value only if the optional is empty. String result2 = optional.orElseGet(() -> { // Expensive computation here return "World"; });</code>
Dalam contoh ini, result1 akan sentiasa mengandungi "Dunia" kerana nilai sandaran dinilai tanpa mengira pilihan yang ada. Sebaliknya, result2 hanya akan diberikan "Dunia" jika pilihan kosong, membolehkan prestasi yang lebih baik apabila pengiraan mahal.
Atas ialah kandungan terperinci Bila hendak menggunakan `Optional.orElseGet()` Daripada `Optional.orElse()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!