例如:
private String test(Optional myOptional)
{
myOptional.ifPresent(() -> return "1");
return "0";
}
因此,当我调用test(myOptional)时,它将返回“1”;
最佳答案
您无法“突破” lambda主体并从封闭方法中返回值。 lambda中使用的return
仅在lambda主体的范围内起作用。
惯用的方法是正确地使用Optional
API:
private String test(Optional<Object> myOptional) {
return myOptional
.map(s -> "1")
.orElse("0");
}
另外,请记住,不应将
Optional
用作方法参数:Why should Java 8's Optional not be used in arguments