例如:
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
不应用作方法参数:
关于java - 我真的可以从 lambda 返回以从方法返回并中断它的执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484618/