Chcę zastąpić następujący kod przy użyciu java8 Optional
:Jak wykonać logikę na Opcjonalne, jeśli nie występuje?
public Obj getObjectFromDB() {
Obj obj = dao.find();
if (obj != null) {
obj.setAvailable(true);
} else {
logger.fatal("Object not available");
}
return obj;
}
Poniższy pseudokod nie działa, gdyż nie ma orElseRun
metoda, ale tak czy inaczej to ilustruje mój cel:
public Optional<Obj> getObjectFromDB() {
Optional<Obj> obj = dao.find();
return obj.ifPresent(obj.setAvailable(true)).orElseRun(logger.fatal("Object not available"));
}
Czego chcesz powrócić z metody, jeśli nie ma obiektu? –
Chciałbym zwrócić 'Opcjonalnie' zawsze tak, jak wskazuje parametr powrotu metody. – membersound