介绍一下Java的BiFunction
java的函数式接口是java8引入的很重要的特性,也让日常代码有了比较大的风格转变
这里介绍下BiFunction,
BiFunction的代码很短
1 | @FunctionalInterface |
默认的方法就跟普通的FunctionalInterface一样,就有一个apply方法,只是这里的特殊点有两个
返回值作为参数
这个BiFunction有三个泛型参数,T,U跟R,而这个R其实是具体方法的返回值
比如我们简单实现一个字符串拼接
1 | BiFunction<String, String, String> biDemo = (s1, s2) -> s1 + s2; |
apply返回的就是参数R
andThen
这个方法是可以让结果再调用传入的方法,并返回结果
1 | Function<String, Integer> funcDemo = String::length; |
定义了个函数接口,并且给了实现,就是字符串获取长度
然后传给biDemo,这样就可以输出拼接后的字符串长度
组合使用
1 | public <T1, T2, R1, R2> R2 combination(T1 t1, T2 t2, BiFunction<T1, T2, R1> biFunction, Function<R1, R2> function) { |
这样就把前面的两个方法串起来了