Rumah >Java >javaTutorial >Mengendalikan NullPointerException dengan Pilihan
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.
String name = null; int length = name.length(); // NPE thrown here
Di sini, kami cuba memanggil kaedah pada rujukan nol. Nama pembolehubah tidak mengandungi objek, jadi kami tidak boleh menggunakan length().
class User { Address address; } class Address { String street; } User user = new User(); String street = user.address.street; // NPE: address is null
Ini menunjukkan cara akses objek bersarang boleh gagal. Walaupun pengguna wujud, alamat adalah batal kerana kami belum memulakannya.
List<String> items = null; items.add("item"); // NPE
Koleksi hendaklah dimulakan sebelum digunakan. Lebih baik untuk memulakan sebagai kosong: Senarai
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
Ini menggantikan semakan null bersarang dengan API yang fasih. Setiap langkah mengendalikan potensi batal dengan selamat.
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
Ini menunjukkan cara mengubah nilai sambil mengendalikan null dengan selamat.
String result = Optional.ofNullable(someString) .orElse("default");
Cara yang bersih untuk memberikan nilai sandaran dan bukannya semakan nol.
Optional.ofNullable(user) .ifPresent(u -> System.out.println(u.getName()));
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!