我想使用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"));
}
对于Java
9或更高版本,ifPresentOrElse
最可能需要的是:
Optional<> opt = dao.find();
opt.ifPresentOrElse(obj -> obj.setAvailable(true),
() -> logger.error("…"));
使用vavr之类的方法进行固化可能会得到更整齐的代码,但是我还没有尝试过。
问题内容: 我有一个使用Python编写的守护程序。运行时,它的PID文件位于/tmp/filename.pid。如果守护程序未运行,则PID文件不存在。 在Linux上,如何检查以确保PID文件存在,如果不存在,请执行命令将其重新启动? 该命令将是 必须从特定目录执行。 问题答案: 检查给定路径是否存在并且是常规文件(仅检查路径是否存在) 在执行测试并返回成功,否则 的是C状,因此,如果左侧的命
问题内容: 我有下表: 如果给定的ID不存在,我想插入具有默认Val的ID。但是,如果它已经存在,我想增加Val的值。 我有以下代码: 并且它可以工作,但是我想用一个SQL语句来完成。我可以吗? 编辑 : 从@ Xikinho90的答案,我的最终代码是 问题答案: 您可以使用插入或替换。 我认为这可以解决问题 您只需要用输入的ID替换数字 谢谢奇科
我目前正在设计一个图像标签系统。从图像到标签有n… m关系。标签本身受到唯一约束的限制。 现在假设用户上传带有标签的图像。标签可能已经存在于数据库中,也可能不存在。如果不存在,则必须插入。现在我无法选择并插入缺少的标签,因为两个线程可能并行,并且一个上传将由于唯一的约束违规而失败。 我目前的设计有效,但似乎非常不正常(每个标签一个插入)。由于ERMAGE类型的postgres限制,我必须对这些插入
问题很简单。如何将列添加到表中,但仅当列不存在时?我在这里只找到了如何检查列是否存在的解决方案。
问题内容: 当我要求模型管理器获取对象时,如果没有匹配的对象,它将引发。 相反的,我怎么能有可以代替? 问题答案: 没有“内置”方式可以做到这一点。Django每次都会引发DoesNotExist异常。在python中处理此问题的惯用方式是将其包装在try catch中: 我所做的是将models.Manager子类化,创建类似于上面的代码,并将该经理用于我的模型。这样,您可以编写:。
问题内容: 嗨,我正在使用Java Optional。我看到Optional有一个ifPresent方法。 而不是做类似的事情: 我想知道如何使用Optional.ifPresent()将值分配给变量。 我正在尝试类似的东西: 我需要lambda函数来获取分配给该变量的值是什么? 问题答案: 您可以使用#orElse或orElseThrow来提高代码的可读性。