Tag: 函数组合

方法参考的组成

这与这个问题有关: 如何进行function组合? 我注意到方法引用可以分配给声明为Function的变量,因此我假设它应该具有andThen或compose函数,因此我希望我们可以直接组合它们。 但显然我们需要将它们分配给一个声明为Function first的变量(或者在调用之前进行类型转换),然后才能调用andThen或者在它们上进行compose 。 我怀疑我可能会对这应该如何运作有一些误解。 所以我的问题: 在我们调用andThen方法之前,为什么我们需要首先进行类型转换或将其分配给变量? 以这种方式需要完成的方法引用的类型究竟是什么? 示例代码如下。 public class MyMethods{ public static Integer triple(Integer a){return 3*a;} public static Integer quadruple(Integer a){return 4*a;} public int operate(int num, Function f){ return f.apply(num); } public static void main(String[] args){ MyMethods methods = new MyMethods(); int three = methods.operate(1, MyMethods::triple); // This is fine // […]

编写Java函数和使用者

在函数上组合java Function和Consumer的最佳方法是什么? 例如,给定一些Function f和一些Consumer c然后执行f.andThen(c)会感觉很自然,但这不是接口的工作方式。 我看到的两个选项是将Function c Consumer c替换为Function c或将Consumer c更改为BiConsumer<Function, String> c并执行 accept(Function f, Object o) { String thing = f.apply(o); //do something with thing } 其中一个比另一个好吗? 有没有更好的办法?