我希望对我定义的函数列表进行惰性评估,如下所示;
Optional<Output> output = Stream.<Function<Input, Optional<Output>>> of(
classA::eval, classB::eval, classC::eval)
.map(f -> f.apply(input))
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
如你所见,每个类(a,b和c)都定义了Optional<Output> eval(Input in)
方法。如果我尝试做
Stream.of(...)....
它忽略了显式类型
T不是功能界面
编译错误。不接受T
中.of(T... values)
泛型类型的功能接口类型
有没有更快捷的方法来创建这些功能的流?我讨厌用of
及其in-out类型明确定义Function
方法。它不会以更通用的方式工作吗?
这个问题源于以下问题的主题; Lambda Expression and generic method