u07*_*103 1 java lambda java-8
为选错的头衔道歉,想不出一个更好的头衔.请随时建议一个新的标题.
我想使用Java 8 lambda表达式编写以下代码
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; //
}
}
Run Code Online (Sandbox Code Playgroud)
有关如何去做的任何建议?
functions.stream()
.map(f -> f.apply(objectOfMyClass))
.filter(Optional::isPresent)
.map(Optional::get)
.findAny()
Run Code Online (Sandbox Code Playgroud)
findAny是一种短路终端操作,基本上就是说,一旦找到有效输出就会短路.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |