使用函数式java快速失败(或者说返回)
为选错的标题道歉,想不出更好的标题。请随意建议一个新的标题 我想使用Java8Lambda表达式编写以下代码使用函数式java快速失败(或者说返回),java,lambda,java-8,Java,Lambda,Java 8,为选错的标题道歉,想不出更好的标题。请随意建议一个新的标题 我想使用Java8Lambda表达式编写以下代码 List<Function<MyClass, Optional<String>>> functions //assume initialized for (final Function<MyClass, Optional<String>> function : functions) { final Optional<
List<Function<MyClass, Optional<String>>> functions //assume initialized
for (final Function<MyClass, Optional<String>> function : functions) {
final Optional<String> result = function.apply(objectOfMyClass);
if (result.isPresent()) { //as soon as one of the function returns a non-null string, return
return result; //
}
}
列出函数//假定已初始化
for(最终函数:函数){
最终可选结果=function.apply(ObjectOfCyclass);
如果(result.isPresent()){//,只要函数之一返回非空字符串,就返回
返回结果//
}
}
有什么建议吗
functions.stream()
.map(f -> f.apply(objectOfMyClass))
.filter(Optional::isPresent)
.map(Optional::get)
.findAny()
findAny
是a,这基本上意味着是的,只要找到有效输出,它就会短路
findAny
是一个,基本上意味着是的,一旦找到有效输出,它就会短路。函数是一个列表还是一个映射?它是一个函数列表。这里有一个输入错误。修复了,谢谢你指出。函数是列表还是映射?它是函数列表。那里有个打字错误。修正了,谢谢你指出。