【发布时间】:2015-09-18 07:28:11
【问题描述】:
在功能上组合 java Function 和 Consumer 的最佳方法是什么?
例如,给定一些Function<Object, String> f 和一些Consumer<String> c,然后执行f.andThen(c) 会感觉很自然,但这不是接口的工作方式。
我看到的两个选项是将Consumer<String> c 替换为Function<String, Void> c 或将Consumer<String> c 更改为BiConsumer<Function<Object, String>, String> c 并执行
accept(Function<Object, String> f, Object o) {
String thing = f.apply(o);
//do something with thing
}
其中一个比另一个更好吗?有没有更好的办法?
【问题讨论】:
-
你能提供一个用例吗?
-
我会为此编写自己的
Consumer类。大约需要 10 行代码。 -
@Tunaki 一个简单的用例是,如果我们有一个对象,我们想以不同的方式(函数)序列化为字符串,然后我们想将它输出到数据库或终端之类的地方(消费者)
-
@MarkoTopolnik 那会是什么样子?
-
好吧,我错了 --- Misha 展示了它是如何在单行中完成的 :) 我想象的课程是手动实现的。
标签: java functional-programming java-8 function-composition