Unter Berücksichtigung des folgenden Code:Try-Catch, optional/null und Lambda
- obj nach nicht geändert worden durch Service intialised, aber aufgrund try/catch-Block, ist es nicht so effektiv als endgültig betrachtet . gibt es eine Möglichkeit, dies zu vermeiden?
Kann Optional als eine universelle Methode betrachtet werden, um eine Nullkontrolle zu vermeiden? In diesem Beispiel würde der Dienst stattdessen die Ausnahme auslösen oder null zurückgeben oder immer die Option Optional?
//to be used outside try/catch block, object must be initialized as null SomeObject obj = null; try { obj = someService.getSomeObject(); } catch (ServiceException e) { LOG.error("Something nasty happened", e); } //the service could have returned a null object if(obj == null) { LOG.error("Obj is null"); } //to be used in a lambda, object must be final SomeObject objCopy = obj; boolean test = someList.stream() .anyMatch(o->o.equals(objCopy));
"es wird nicht als effektiv endgültig betrachtet" Was meinst du damit? –
@LutzHorn, eine Variable wird als effektiv endgültig betrachtet, wenn ihr Wert sich nach der Initialisierung nie ändert. –