作为一个例子,我有这样一个可选选项:
Optional<Desktop> opt = Optional.ofNullable(status).map(Status::getDesktop);
我想拥有桌面并在lambda表达式之外使用它。我这样做:
if (opt.isPresent()){
Desktop desktop = opt.get();
...
}
有没有更好的解决方案来获得桌面;像这样的?
Desktop desktop = Optional.ofNullable(status).map(Status::getDesktop).ifPresent(get());
编辑:OrElse是我在寻找的方法:)
就在上周,我在这里被告知,像这样使用可选选项都是一种代码味道,所以
Desktop desktop = (status != null)? status.getDesktop() : null;
如果您的桌面有一个默认值
,您可以尝试使用可选选项。orElse
:
Desktop defaultDesktop = ...;
Desktop desktop = Optional.ofNullable(status)
.map(Status::getDesktop)
.orElse(defaultDesktop);
但是,您不必在带有可选项的lambda表达式中工作。如果存在
。您完全可以使用一个方法来接收桌面
实例,它将充当可选的
:消费者
参数。如果存在
Desktop desktop = Optional.ofNullable(status)
.map(Status::getDesktop)
.ifPresent(this::workWithDesktop);
然后:
void workWithDesktop(Desktop desktop) {
// do whatever you need to do with your desktop
}
如果您需要其他参数(除了桌面本身),您可以使用调用该方法的lambda表达式:
String arg1 = "hello";
int arg2 = 10;
Desktop desktop = Optional.ofNullable(status)
.map(Status::getDesktop)
.ifPresent(desktop -> this.workWithDesktop(desktop, arg1, arg2));
然后:
void workWithDesktop(Desktop desktop, String arg1, int arg2) {
// do whatever you need to do with your desktop, arg1 and arg2
}
问题内容: 我有一个这样的类结构: 我的目标是调用get方法,然后检查它是否存在。如果存在,则返回该属性;如果不存在,则仅返回null。所以像这样: 当然,这不是正确的Java 8可选语法,但这就是我的“伪代码”。用Java 1行有什么办法实现这一点? 问题答案: 您正在描述的是方法: 如果值不存在,则可让您使用函数在内转换该值,如果不存在该值,则返回一个空值(可选)。 还要注意,您可以从映射函数
我有以下Java 8代码: 它工作正常,但我想知道如何将调用链接到不使用。我试过使用,但它不允许返回另一个
所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。
问题内容: 所以我得到的代码看起来像这样: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑 :要添加,将只有一个复选框。 问题答案: 对于现代浏览器 : 通过使用: 没有_以下内容的 _纯javascript :
我到处寻找,并尽一切努力从SQLQueriesRadion按钮获取选定的mySQL值。 这是我的密码 谢啦
问题内容: 我有一个带有属性的元素。如何使用JavaScript获取此元素的选定值? 这是我正在尝试的: 问题答案: 没有jQuery: 快速示例: