Java 用lambda替换if-else方法

Java 用lambda替换if-else方法,java,lambda,Java,Lambda,是否可以替换一系列if-else子句,例如下面的firstMatchedValue方法 foo() { String value = firstMatchedValue("input"); // Do something useful. } String firstMatchedValue(String bar) { if (<condition1>) { return "value1"; }

是否可以替换一系列if-else子句,例如下面的firstMatchedValue方法

foo() {
    String value = firstMatchedValue("input");
    // Do something useful.
}

String firstMatchedValue(String bar) {
    if (<condition1>) {
        return "value1";
    } else if (<condition2>) {
        return "value2";
    }
    return "value3";
}
foo(){
字符串值=firstMatchedValue(“输入”);
//做一些有用的事情。
}
字符串firstMatchedValue(字符串栏){
如果(){
返回“value1”;
}如果(){
返回“value2”;
}
返回“value3”;
}
是否使用结构类似于以下占位符代码的lambda表达式

foo() {
    String value = Optional.of("input")
        .someMethod(bar -> <condition1> return "value1")
        .someMethod(bar -> <condition2> return "value2")
        .orElse("value3")
}
foo(){
字符串值=可选。of(“输入”)
.someMethod(条->返回“值1”)
.someMethod(条->返回“值2”)
.orElse(“价值3”)
}

您听说过三元运算符吗?它不是lambda,但它看起来像你要找的。@BarHoshen我通常发现三元运算在超过1个条件时很难读取。也许这只是我没有充分使用它的问题。@stein更可能是你没有充分格式化代码的问题。你听说过三元运算符吗?它不是lambda,但它看起来像你要找的。@BarHoshen我通常发现三元运算在超过1个条件时很难读取。也许这只是我没有充分使用它的问题。@stein更可能是您没有充分格式化代码的问题。