Home » 2022 » März

Archiv für den Monat: März 2022

Optional.ofNullable / Optional.map – Mehrstufig hierarchische NOT NULL Abfrage. Anstatt Abfrage auf != NULL

Schritt 1: Erstelle ein Optional auf dem Object auf das du null-wert-sicher zugreifen möchtest:

Optional isOptionallyNull = Optional.ofNullable(instOfClassANotShureIfNull);

Schritt 2: Greife auf Felder (und Child-Felder) zu Obwohl die Instanz selbst (oder ihre Children) ja null sein könnten: Map:

ClassC unterUnterObject = isOptionallyNull .map(ClassA::getSubObjB).map(ClassB::getSubC).orElseGet(ClassC::new)

Wie oben demonstriert können über mehrere Stufen aggregierte Sub-Objekte so abgefragt werden, obwohl man nicht weiss ob Vater- oder Zwischenobjekte NULL sein könnten.

Filtern von Stream-Objekten und Verarbeitung mit dem gefundenen Objekt (–> ifPresent)

if (v1 != null && issuerMap.containsKey(v1)) {
    phcCr.setIssuer(issuerMap.get(v1));
}

… kann dasselbe erreicht werden mit:

Optional.ofNullable(v1).filter(value -> issuerMap.containsKey(value))
.ifPresent(value -> phcCr.setIssuer(issuerMap.get(value)));