我是JAVA8的新手,我试图通过Lambda表达式的组合实现一些示例以执行算术方程。
我提到的几本书中仅举了一些例子来构成“功能”。但是我觉得将“ Function”和“ BiFunction”组合在一起执行(x + y)^ 2
并不复杂我想在这里执行(x + y)^ 2,结果是(x ^ 2 + 2xy + Y ^ 2)。
首先,我尝试创建要执行的函数f1(x * x)和要执行的双功能f2(2 * x * y)。但是我没有找到任何合适的方法将f1和f2组合在一起。所以我以下面提到的简单代码结束了我的练习:
public static void main(String[] args) {
Long a = 1l;
Long b = 2l;
Function<Long, Long> f1 = (x) -> x * x;
BiFunction<Long, Long, Long> f2 = (x,y) -> 2* x * y;
BiFunction<Long, Long, Long> f3 = (x,y) -> x + y;
Long result = f3.apply(f3.apply(f1.apply(a), f1.apply(b)),f2.apply(a, b));
System.out.println("Result of (1+2)^2 is :"+ result);
}
}
还有其他更好且更可靠的方法可以用来改进上述合成示例吗?