主方法:returnValue = method(streams, this::funtion1, this::funtion2, this::funtion3);
method 实现:
method (Stream streams, Function<Stream<?>, Stream<?>>... functions) {
return Arrays.stream(functions).reduce(Function::andThen).get().apply(streams);
}
目前想在 function3 内多加一个 int 参数,问下该如何实现
Function<Stream<?>, Integer, Stream<?>> 是这样写吗
虽然直接把 function3 独立出来也可以,但总觉得破坏了大佬代码。。。
来这里咨询一下
method 实现:
method (Stream streams, Function<Stream<?>, Stream<?>>... functions) {
return Arrays.stream(functions).reduce(Function::andThen).get().apply(streams);
}
目前想在 function3 内多加一个 int 参数,问下该如何实现
Function<Stream<?>, Integer, Stream<?>> 是这样写吗
虽然直接把 function3 独立出来也可以,但总觉得破坏了大佬代码。。。
来这里咨询一下
4 条回复 • 2019-07-25 12:48:56 +08:00
|
1
secondwtq 2019 年 7 月 15 日 via iPad
不熟悉 Java,不过你这个参数可以加在重载函数上
|
|
2
zzl22100048 2019 年 7 月 15 日 funtion 代表函数,一个输入一个输出,bifuntion 两个输入一个输出
|
|
3
qwerthhusn 2019 年 7 月 15 日
一顿操作猛如虎,其实逻辑很简单,如果一串流挨排经过 function1 function2 function3。我怀疑你口中的大佬只是在炫技罢了。
具体逻辑不清楚也不知道该怎么改,不过能告诉你的就是那个一行代码的方法的逻辑就是上面说的那样 |
|
4
wsxyeah 2019 年 7 月 25 日 via iPhone
柯里化?
给 function3 绑定值返回一个新函数,或者你直接写一下重载函数调用 function3 也是一样的。 |