写在前面
JDK8 API提供了很多函数式接口,这些函数式接口可以被抽象成一个具体的方法,并且使其使用在Lambda表达式中,今天我们要来说的就是其中的UnaryOperator函数接口。
JDK8函数式接口之UnaryOperator
UnaryOperator函数接口,是一个计算型的函数,让我们来先来看一下源码是怎样的一个体现。
@FunctionalInterface public interface UnaryOperator<T> extends Function<T, T> { static <T> UnaryOperator<T> identity() { return t -> t; } }
上述UnaryOperator源码中,我们可以看到此接口是继承了Function<T,T>接口。
这说明了此接口是存在apply接口方法的。
而且此接口单独实现了identity方法。
让我们来看看此函数接口在代码中如何使用吧,如下代码所示:
public static void main(String[] args) { UnaryOperator<Integer> operator = x -> x + 1; System.out.println(operator.apply(1)); }
执行代码结果如下:
如此,我们就可以看出来,使用apply接口方法后,会根据我们自行定义的规则在原来的数字上进行加一操作。
andThen方法
因为继承了Function<T,T>,所以此接口也是有andThen方法的,使用方法是一样的,这里就简单贴一个例子就好了。
public static void main(String[] args) { UnaryOperator<Integer> operator = x -> x + 1; UnaryOperator<Integer> operator1 = x -> x + 10; System.out.println(operator.andThen(operator1).apply(1)); }
执行代码结果如下:
通过上述方法,我们可以看得出来,UnaryOperator函数接口的使用基本上就维持在运算上面,从名字上看也能看出来是一个运算符。
所以通过运算符的方式去理解这个接口会更加容易些。
总结
今天学习了UnaryOperator函数式接口,通过例子讲述了函数式编程中的运算符是如何使用的,当然还有其他的运算符接口,我们接下来会一一讲解的。