Heim > Java > javaLernprogramm > Behandlung von NullPointerException mit Optional

Behandlung von NullPointerException mit Optional

Linda Hamilton
Freigeben: 2025-01-04 06:41:41
Original
269 Leute haben es durchsucht

Handling NullPointerException with Optional

Definition

NPE ist eine Laufzeitausnahme, die auftritt, wenn versucht wird, eine Nullreferenz zu verwenden. Die JVM löst diese Ausnahme aus, um vor der Dereferenzierung von Nullzeigern zu schützen, die zu Programmabstürzen führen könnte.

Häufige Ursachen

Grundlegendes Beispiel

String name = null;
int length = name.length(); // NPE thrown here
Nach dem Login kopieren

Hier versuchen wir, eine Methode für eine Nullreferenz aufzurufen. Der Variablenname enthält kein Objekt, daher können wir length() nicht aufrufen.

Beispiel für verschachtelte Objekte

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

User user = new User();
String street = user.address.street; // NPE: address is null
Nach dem Login kopieren

Dies zeigt, wie der Zugriff auf verschachtelte Objekte fehlschlagen kann. Während der Benutzer vorhanden ist, ist die Adresse null, da wir sie nicht initialisiert haben.

Sammlungsbeispiel

List<String> items = null;
items.add("item"); // NPE
Nach dem Login kopieren

Sammlungen sollten vor der Verwendung initialisiert werden. Besser leer initialisieren: List items = new ArrayList<>();

Optionale Verwendung erklärt

Grundlegende optionale Verkettung

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
Nach dem Login kopieren

Dies ersetzt verschachtelte Nullprüfungen durch eine fließende API. Jeder Schritt behandelt potenzielle Nullen sicher.

Karte und Filter

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
Nach dem Login kopieren

Dies zeigt, wie man Werte transformiert und dabei Nullen sicher verarbeitet.

Standardwerte

String result = Optional.ofNullable(someString)
    .orElse("default");
Nach dem Login kopieren

Eine saubere Möglichkeit, Fallback-Werte anstelle von Nullprüfungen bereitzustellen.

Bedingte Ausführung

Optional.ofNullable(user)
    .ifPresent(u -> System.out.println(u.getName()));
Nach dem Login kopieren

Führen Sie Code nur aus, wenn der Wert vorhanden ist, und ersetzen Sie If-Not-Null-Prüfungen.

Das obige ist der detaillierte Inhalt vonBehandlung von NullPointerException mit Optional. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage