【发布时间】:2015-03-24 15:01:33
【问题描述】:
我想用java8 Optional替换下面的代码:
public Obj getObjectFromDB() {
Obj obj = dao.find();
if (obj != null) {
obj.setAvailable(true);
} else {
logger.fatal("Object not available");
}
return obj;
}
以下伪代码不起作用,因为没有 orElseRun 方法,但无论如何它说明了我的目的:
public Optional<Obj> getObjectFromDB() {
Optional<Obj> obj = dao.find();
return obj.ifPresent(obj.setAvailable(true)).orElseRun(logger.fatal("Object not available"));
}
【问题讨论】:
-
如果不存在对象,你想从方法返回什么?
-
我希望始终按照方法返回参数的指示返回
Optional。