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)));