Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用函数式java快速失败(或者说返回)_Java_Lambda_Java 8 - Fatal编程技术网

使用函数式java快速失败(或者说返回)

使用函数式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<

为选错的标题道歉,想不出更好的标题。请随意建议一个新的标题

我想使用Java8Lambda表达式编写以下代码

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
是一个,基本上意味着是的,一旦找到有效输出,它就会短路。

函数是一个列表还是一个映射?它是一个函数列表。这里有一个输入错误。修复了,谢谢你指出。函数是列表还是映射?它是函数列表。那里有个打字错误。修正了,谢谢你指出。