Rumah > Java > javaTutorial > Mengendalikan NullPointerException dengan Pilihan

Mengendalikan NullPointerException dengan Pilihan

Linda Hamilton
Lepaskan: 2025-01-04 06:41:41
asal
270 orang telah melayarinya

Handling NullPointerException with Optional

Definisi

NPE ialah pengecualian masa jalan yang berlaku apabila cuba menggunakan rujukan nol. JVM membuang pengecualian ini untuk melindungi daripada penyahrujukan penunjuk nol, yang boleh menyebabkan ranap program.

Punca Biasa

Contoh Asas

String name = null;
int length = name.length(); // NPE thrown here
Salin selepas log masuk

Di sini, kami cuba memanggil kaedah pada rujukan nol. Nama pembolehubah tidak mengandungi objek, jadi kami tidak boleh menggunakan length().

Contoh Objek Bersarang

class User {
    Address address;
}
class Address {
    String street;
}

User user = new User();
String street = user.address.street; // NPE: address is null
Salin selepas log masuk

Ini menunjukkan cara akses objek bersarang boleh gagal. Walaupun pengguna wujud, alamat adalah batal kerana kami belum memulakannya.

Contoh Koleksi

List<String> items = null;
items.add("item"); // NPE
Salin selepas log masuk

Koleksi hendaklah dimulakan sebelum digunakan. Lebih baik untuk memulakan sebagai kosong: Senarai item = ArrayList baharu<>();

Penggunaan Pilihan Diterangkan

Rantaian Pilihan Asas

Optional<User> user = Optional.of(new User());
String street = user
    .flatMap(User::getAddress)  // Converts User to Optional<Address>
    .map(Address::getStreet)    // Converts Address to Optional<String>
    .orElse("Unknown");         // Provides default if null
Salin selepas log masuk

Ini menggantikan semakan null bersarang dengan API yang fasih. Setiap langkah mengendalikan potensi batal dengan selamat.

Peta dan Penapis

Optional<String> upperStreet = Optional.ofNullable(user)
    .filter(u -> u.getName() != null)  // Only proceed if name exists
    .map(User::getName)                // Get the name
    .map(String::toUpperCase);         // Transform it
Salin selepas log masuk

Ini menunjukkan cara mengubah nilai sambil mengendalikan null dengan selamat.

Nilai Lalai

String result = Optional.ofNullable(someString)
    .orElse("default");
Salin selepas log masuk

Cara yang bersih untuk memberikan nilai sandaran dan bukannya semakan nol.

Pelaksanaan Bersyarat

Optional.ofNullable(user)
    .ifPresent(u -> System.out.println(u.getName()));
Salin selepas log masuk

Laksanakan kod hanya apabila nilai wujud, menggantikan semakan if-not-null.

Atas ialah kandungan terperinci Mengendalikan NullPointerException dengan Pilihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan