使用 Java8,可以做到这一点:
Optional.ofNullable(realResult).orElse(mockResult);
而不是:
if(realResult == null)
return mockResult;
return realResult;
<小时/>
问题:我们可以将 boolean 值转换为 java8 吗?或者换句话说,我们可以写这样的东西:
Boolean.valueOf(boolVar).ifTrue(trueResult).orElse(falseResult);
而不是:
if(boolVar)
return trueResult;
return falseResult;
编辑#1 感谢您建议三元运算,仍然想知道我们是否可以?
最佳答案
使用语言中已包含的三元运算符怎么样?
boolVar ? trueResult : falseResult
编辑:如果你真的想要这样的类(class),那就是这样的:
public class Conditional<T> {
private final boolean condition;
private T valueWhenTrue;
public static Conditional valueOf(boolean condition) {
return new Conditional(condition);
}
private Conditional(boolean condition) {
this.condition = condition;
}
public Conditional ifTrue(T valueWhenTrue) {
this.valueWhenTrue = valueWhenTrue;
return this;
}
public T orElse(T valueWhenFalse) {
return condition ? valueWhenTrue : valueWhenFalse;
}
}
用法:
Conditional.valueOf(boolVar).ifTrue(trueResult).orElse(falseResult)
关于java - 我们可以像Optional(ifPresent和orElse)一样在Java8中采用 boolean 值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797504/