Rumah >Java >javaTutorial >Sekiranya Anda Mengelakkan Argumen Pilihan dalam Kaedah Java 8?

Sekiranya Anda Mengelakkan Argumen Pilihan dalam Kaedah Java 8?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 06:10:09440semak imbas

Should You Avoid Optional Arguments in Java 8 Methods?

Mengapa Elakkan Argumen Pilihan dalam Java 8

Walaupun peranannya bertujuan semata-mata sebagai jenis pulangan, penggunaan Pilihan sebagai hujah kaedah telah dibahaskan. Mari kita terokai hujah yang memihak kepada mengelakkan amalan ini:

Potensi Logik Bersyarat

Melalui parameter pilihan boleh membawa kepada logik bersyarat dalam kaedah, merumitkan kod dan menjadikannya lebih sukar untuk dikekalkan. Pertimbangkan contoh berikut:

public int calculateSomething(Optional<String> p1, Optional<BigDecimal> p2) {
    if (p1.isPresent() && p2.isPresent()) {
        return // ... logic with both values present
    } else if (p1.isPresent()) {
        return // ... logic with only p1 present
    } else if (p2.isPresent()) {
        return // ... logic with only p2 present
    } else {
        return // ... logic with both values absent
    }
}

Balut Tidak Perlu

Membalut parameter nullable dalam Pilihan menimbulkan overhed masa jalan yang tidak perlu dengan menambahkan lapisan tambahan abstraksi. Sebagai perbandingan, menggunakan parameter boleh nullable secara langsung memerlukan lebih sedikit overhed.

Prestasi Mahal

Pilihan menanggung kos tambahan berbanding parameter boleh tonull. Kehadiran pembalut Pilihan memerlukan semakan dan operasi tambahan, yang boleh memberi kesan kepada prestasi, terutamanya dalam aplikasi kritikal prestasi.

Risiko Input Null

Walaupun ia tidak dibenarkan melepasi null secara langsung sebagai parameter pilihan, masih terdapat risiko seseorang melepasi Pilihan yang mengandungi null. Ini boleh membawa kepada tingkah laku yang tidak dijangka dan potensi NullPointerExceptions.

Kesimpulan

Walaupun memberikan Pilihan sebagai hujah kaedah mungkin mempunyai penyokongnya, potensi untuk logik bersyarat, pembalut yang tidak perlu, implikasi prestasi dan risiko input null menjadikannya secara amnya tidak diingini. Untuk input kaedah, parameter nullable mewakili alternatif yang lebih bersih dan lebih cekap. Dengan mengikut garis panduan ini, pembangun boleh mempromosikan kebolehbacaan kod, kebolehselenggaraan dan prestasi.

Atas ialah kandungan terperinci Sekiranya Anda Mengelakkan Argumen Pilihan dalam Kaedah Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn