我正在寻找一个布尔值可选的非常基本的方法。我想念一些非常基本的东西

所以老学校如果不是这样的话

    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不起作用,因为method1method2都没有返回值。并且不允许映射到void

当前,Java 8中没有真正的整洁解决方案,但是如果您碰巧使用Java 9,则可以使用ifPresentOrElse(Consumer<T>, Runnable>)实现:

filterValue.ifPresentOrElse(value -> {
    if(value){
        method1();
    } else {
        method2();
    }
}, () -> method3());

09-26 14:57