


Bagaimana menggunakan kelas pilihan untuk mengelakkan NullPointerException di Java?
Sep 25, 2025 am 06:04 AMKelas pilihan digunakan untuk mengendalikan nilai -nilai yang selamat yang mungkin menjadi batal, mengelakkan pengecualian penunjuk null. 1. Buat contoh menggunakan pilihan. Nullable untuk mengendalikan nilai null. 2. Semak dan nilai akses melalui ISPRESENT atau Keselamatan IFPRESENT untuk mengelakkan panggilan langsung untuk menyebabkan pengecualian. 3. Gunakan Orelse dan Orelseget untuk memberikan nilai lalai, atau gunakan Orelsethrow untuk membuang pengecualian tersuai. 4. Menukar atau menapis nilai melalui operasi peta dan penapis rantaian untuk meningkatkan kebolehbacaan kod dan ketahanan.
Kelas pilihan di Java, yang diperkenalkan di Java 8, adalah bekas yang mungkin atau mungkin tidak memegang nilai non-null. Ia membantu pemaju menulis kod yang lebih bersih dan lebih selamat dengan secara jelas mengendalikan kehadiran atau ketiadaan nilai, dengan itu mengurangkan risiko NullPointerException .
1. Membuat contoh pilihan
Gunakan kaedah kilang statik untuk membuat objek pilihan berdasarkan sama ada nilai wujud.
- Pilihan.of (Nilai) : Gunakan apabila anda pasti nilai tidak null. Melemparkan NullPointerException jika nilai itu adalah batal.
- Optional.ofnullable (nilai) : Gunakan apabila nilai mungkin null. Mengembalikan pilihan kosong jika nilai adalah batal.
- Opsional.Empty () : Mengembalikan contoh pilihan kosong secara eksplisit.
Contoh:
String name = "Alice"; Pilihan <string> optionAlName = optional.OfNullable (name); Pilihan <string> empyName = optional.OfNullable (null); // Pilihan kosong </string></string>
2. Memeriksa dan mengambil nilai dengan selamat
Jangan panggil .get () tanpa menyemak sama ada nilai hadir -ia melemparkan NosuchelementException jika pilihan kosong.
- .ispresent () : cek jika nilai wujud.
- .FPRESENT (Pengguna) : Melaksanakan blok kod hanya jika nilai hadir.
Contoh:
jika (optionalName.ispresent ()) { System.out.println ("Hello," optionAlName.get ()); } // Pendekatan yang lebih baik menggunakan ifpresent optionAlName.ifPresent (nama -> System.out.println ("Hello," nama));
3. Berikan nilai lalai
Gunakan mekanisme sandaran apabila pilihan kosong.
- .Orelse (DefaultValue) : Mengembalikan nilai jika hadir, jika tidak, pulangan lalai.
- .OrelSeget (pembekal) : Sama seperti Orelse, tetapi malas menilai pembekal (lebih cekap jika penciptaan lalai mahal).
- .OrelSethrow (PengecualianPlier) : Melemparkan pengecualian jika tiada nilai hadir.
Contoh:
Hasil String1 = optionAlName.orelse ("tetamu"); Hasil String2 = optionAlName.orelSeget (() -> fetchDefaultName ()); Hasil String3 = optionAlName.orelSethrow (() -> baru IllegalArgumentException ("Nama hilang"));
4. Operasi Chaining dengan Peta dan Penapis
Mengubah atau menapis nilai di dalam pilihan tanpa memeriksa secara manual.
- .map (fungsi) : Menggunakan fungsi untuk nilai jika hadir dan mengembalikan pilihan baru.
- .filter (predikat) : Mengembalikan pilihan jika nilai sepadan dengan keadaan, jika tidak, pulangan kosong.
Contoh:
Pilihan <string> uppername = optionalName .filter (name -> name.length ()> 3) .map (string :: touppercase); uppername.ifPresent (System.out :: println); // cetakan jika nama cukup lama </string>
Menggunakan pilihan menggalakkan pengendalian kes -kes null yang jelas dan membawa kepada kod yang lebih mudah dibaca dan mantap. Daripada membiarkan NPE merosakkan program anda, anda menentukan tingkah laku yang jelas untuk nilai yang hilang. Pada asasnya, ia mengalihkan tanggungjawab daripada membuang pengecualian untuk menguruskan mutlak dengan anggun.
Atas ialah kandungan terperinci Bagaimana menggunakan kelas pilihan untuk mengelakkan NullPointerException di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kelas pilihan digunakan untuk mengendalikan nilai -nilai yang selamat yang mungkin menjadi batal, mengelakkan pengecualian penunjuk null. 1. Buat contoh menggunakan pilihan. Nullable untuk mengendalikan nilai null. 2. Semak dan nilai akses melalui ISPRESENT atau Keselamatan IFPRESENT untuk mengelakkan panggilan langsung untuk menyebabkan pengecualian. 3. Gunakan Orelse dan Orelseget untuk memberikan nilai lalai, atau gunakan Orelsethrow untuk membuang pengecualian tersuai. 4. Menukar atau menapis nilai melalui operasi peta dan penapis rantaian untuk meningkatkan kebolehbacaan kod dan ketahanan.

Gunakan kaedah getClass () untuk mendapatkan kelas runtime objek, seperti str.getClass () untuk mengembalikan objek kelas; Untuk jenis, anda boleh menggunakan sintaks string.class secara langsung. Kelas kelas menyediakan kaedah seperti getName (), getImpleName () untuk mendapatkan maklumat kelas, seperti num.getClass (). GetImpleName () untuk output integer.

Atwo-dimensialarrayinjavaisanarrayofarrays, declaredwithtwobrackets, likeint [] [] matriks, andcanbeinitializedwithvaluesorusingnew;

ThecurrentworkingDirectoryInjavacanBeobtainTusingsystem.getProperty ("user.dir"), yang mana -mana yang tidak dapat dilancarkan

AsingletonclassinjavaensureSonLyoneInstanceExisThoughoutApplication'sLifecycleBerbyUsingAprivateConstructor, aprivatestaticInstance, andApublicStaticGetInstance () Kaedah; CommonEmplementationseCludeeagerinitization, Lazyinitialization, Thread-Safelaz

Genericsinjavaprovidecompile-timetypesafetyandeliminatetheneedforcastingingbyallowinglasses, antara muka, danmethodstooperateonTypeparameters;

Toimplementacustompomparatorinjava, createAclassorldatoverridestHecompareMethodTodefinesortinglogic.forexample, withapersonclasshavingnameandageandields, defineageComparaterimplementingcomparatorandoverridecareageusease

Cache dan cookies boleh dibersihkan untuk laman web tertentu untuk menyelesaikan pengecualian halaman penyemak imbas UC. 1. Pergi ke Tetapan → Privasi dan Keselamatan → Pengurusan Data Laman Web, Cari laman web sasaran dan jelaskan datanya; 2. Gunakan mod pelayaran yang tidak kelihatan untuk mengakses laman web masalah untuk mengelakkan pengekalan data; 3. Tetapkan semula storan dengan melumpuhkan dan membolehkan kebenaran laman web, dan paksa membersihkan cache lama.
