Optional - Satttoshi/github-wiki-generator GitHub Wiki

Optional in Java

Optional ist eine Java-Klasse, die es ermöglicht, nullable Werte mit mehr Sicherheit und Lesbarkeit zu behandeln. Es ist Teil des java.util Packages und wurde zum ersten Mal in Java 8 eingeführt. Die Verwendung von Optional kann dazu beitragen, NullPointerExceptions zu vermeiden, da die Verwendung von null vorher überprüft wird.

Initialisierung von Optional

Optional-Objekte können auf drei Arten initialisiert werden:

  1. Optional.of(value): Erstellt ein Optional-Objekt mit dem angegebenen Wert und gibt eine Exception zurück, wenn value null ist.
  2. Optional.empty(): Erstellt ein leeres Optional-Objekt.
  3. Optional.ofNullable(value): Erstellt ein Optional-Objekt mit dem angegebenen Wert, gibt jedoch kein Fehler zurück, wenn value null ist.

Praktische Anwendung

Die Verwendung von Optional kann den Code lesbarer und sicherer machen, indem es verhindert, dass Werte auf null überprüft werden müssen. So kann beispielsweise in einem Person-Objekt das Attribut name mit Optional initialisiert werden:

public class Person {
    private Optional<String> name;

    public Person(String name) {
        this.name = Optional.ofNullable(name);
    }

    public Optional<String> getName() {
        return name;
    }
}

Wenn nun ein Person-Objekt ohne Namen erstellt wird, ergibt sich folgendes:

Person person1 = new Person("Max Mustermann");
Person person2 = new Person(null);

System.out.println(person1.getName().orElse("Kein Name angegeben")); // Gibt "Max Mustermann" aus
System.out.println(person2.getName().orElse("Kein Name angegeben")); // Gibt "Kein Name angegeben" aus

orElse() gibt in diesem Fall den Alternativwert zurück, wenn name null ist.

Fazit

Optional in Java ist ein wichtiges Konzept für eine verbesserte Programmierung, da es die Lesbarkeit von Code erhöht und gleichzeitig NullPointerExceptions vermeidet. Es sollte jedoch beachtet werden, dass es manchmal sinnvoll ist, null-Werte zuzulassen. In jedem Fall ist es jedoch eine Überlegung wert, Optional zu verwenden, um den Code sicherer zu machen.

⚠️ **GitHub.com Fallback** ⚠️