Java 用lambda替换if-else方法
是否可以替换一系列if-else子句,例如下面的firstMatchedValue方法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"; }
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更可能是您没有充分格式化代码的问题。