我正在寻找一个布尔值可选的非常基本的方法。我想念一些非常基本的东西
所以老学校如果不是这样的话
if (filterValue.isPresent()) {
if (filterValue.get()==true) {
method1();
} else {
method2();
}
} else {
method3();
}
我尝试了2次更换的各种尝试
filterValue.map(o -> o.TRUE ? method1() : method2()).orElse(method3());
和
filterValue.isPresent(filterValue.get().TRUE ? method1() : method2());
而且似乎不太了解语法吗?
有人能指出我正确的方向吗?
最佳答案
map
不起作用,因为method1
和method2
都没有返回值。并且不允许映射到void
。
当前,Java 8中没有真正的整洁解决方案,但是如果您碰巧使用Java 9,则可以使用ifPresentOrElse(Consumer<T>, Runnable>)
实现:
filterValue.ifPresentOrElse(value -> {
if(value){
method1();
} else {
method2();
}
}, () -> method3());