相关疑难解决方法(0)

如果不存在,如何在Optional上执行逻辑?

我想用java8替换下面的代码Optional:

public Obj getObjectFromDB() {
    Obj obj = dao.find();
    if (obj != null) {
        obj.setAvailable(true);
    } else {
        logger.fatal("Object not available");
    }

    return obj;
}
Run Code Online (Sandbox Code Playgroud)

以下伪代码不起作用,因为没有orElseRun方法,但无论如何它说明了我的目的:

public Optional<Obj> getObjectFromDB() {
    Optional<Obj> obj = dao.find();
    return obj.ifPresent(obj.setAvailable(true)).orElseRun(logger.fatal("Object not available"));
}
Run Code Online (Sandbox Code Playgroud)

java optional java-8

65
推荐指数
8
解决办法
9万
查看次数

标签 统计

java ×1

java-8 ×1

optional ×1