JDK8函数式接口之UnaryOperator

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

写在前面

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));
}
复制代码

执行代码结果如下:

image.png

如此,我们就可以看出来,使用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));
}
复制代码

执行代码结果如下:

image.png

通过上述方法,我们可以看得出来,UnaryOperator函数接口的使用基本上就维持在运算上面,从名字上看也能看出来是一个运算符。

所以通过运算符的方式去理解这个接口会更加容易些。

总结

今天学习了UnaryOperator函数式接口,通过例子讲述了函数式编程中的运算符是如何使用的,当然还有其他的运算符接口,我们接下来会一一讲解的。

Guess you like

Origin juejin.im/post/7061837762466414628