是否有一种优雅的方式来存储apply()
方法的返回值,因此不必多次调用它?因为我能想到的唯一方法是创建一个本地地图变量来存储函数 - “返回值”对。
@Autowired
private List<Function<String, String>> evaluators;
//...
private String evaluate(String code) {
return evaluators.stream().filter(f -> f.apply(code) != null).findFirst().get().apply(code);
}
答案 0 :(得分:7)
试试这个。
private String evaluate(String code) {
return evaluators.stream()
.map(f -> f.apply(code))
.filter(s -> s != null)
.findFirst().get();
}