创建函数流的更好方法是什么?

问题描述 投票:6回答:2

我希望对我定义的函数列表进行惰性评估,如下所示;

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

java java-8 java-stream functional-interface
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.