gri*_*rdo 3 java optional java-8
我想在布尔可选值上做一个非常基本的if else.我想我遗漏了一些非常基本的东西
所以旧学校如果其他巢就是这样的
if (filterValue.isPresent()) {
if (filterValue.get()==true) {
method1();
} else {
method2();
}
} else {
method3();
}
Run Code Online (Sandbox Code Playgroud)
我尝试了2次替换的各种尝试
filterValue.map(o -> o.TRUE ? method1() : method2()).orElse(method3());
Run Code Online (Sandbox Code Playgroud)
和
filterValue.isPresent(filterValue.get().TRUE ? method1() : method2());
Run Code Online (Sandbox Code Playgroud)
并不能完全得到语法?
有人能指出我正确的方向吗?
map不起作用,因为既没有method1也method2没有返回值.并且void不允许映射到.
目前在Java 8中没有真正的解决方案,但如果您碰巧使用Java 9,则可以通过ifPresentOrElse(Consumer<T>, Runnable>)以下方式实现:
filterValue.ifPresentOrElse(value -> {
if(value){
method1();
} else {
method2();
}
}, () -> method3());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |