Ein häufig in Enterprise-Anwendungen auftauchendes Problem sind NullPointerExceptions. Um diese zu umgehen, kann man einen "Wrapper" nutzen, welcher die Referenzen auf Objekte einpackt und Möglichkeiten bietet, mit Null-Values umzugehen: java.util.Optional
Einer der "Anwendungsfälle" kann der folgende sein:
private String getValueFromField(String fieldName) {
...
return value;
}
private void handleValues() {
String val = getValueFromField("Caption");
if (val != null) {
baseObject.setCaption(val);
}
}
kann bei Verwendung von Optional ersetzt werden durch:
private Optional<String> getOptionalValueFromField(String fieldName) {
...
return Optional.ofNullable(value);
}
private void handleValues() {
getOptionalValueFromField("Caption").ifPresent(baseObject::setCaption);
getOptionalValueFromField("editDate").ifPresent(baseObject::setEditDate);
getOptionalValueFromField("author").ifPresent(baseObject::setAuthor);
....
}
Da get[Optional]ValueFromField()
nun ein Optional<String>
zurück gibt, kann man die Methoden von Optional anwenden. Eine dieser Methoden ist ifPresent()
, welche einen Consumer als Parameter erwartet. So kann man den Code m.M. etwas übersichtlicher gestalten.