Java 函数式编程

函数式接口介绍

Java8 新引入函数式编程方式,大大的提高了编码效率。函数式接口是指有且只有一个未实现的方法的接口,一般通过 @FunctionalInterface 这个注解来表明某个接口是一个函数式接口。函数式接口是 Java 支持函数式编程的基础。

Consumer 接口

Consume 是一个函数式接口,包含一个抽象方法 accept,这个方法只有输入而无输出。传统方式定义:

Consumer c =new Consumer(){
    @override
    public void accept(Object o){
       System.out.println(o);
    }
}

针对函数式编程接口,可以这样定义:

Consumer c = (o) -> {
    System.out.println(o);
};  

函数式编程接口都只有一个抽象方法,因此在采用这种写法时,编译器会将这段函数编译后当作该抽象方法的实现。
当函数体中只有一个语句时,可以去掉{}进一步简化。

Consumer c = (o) -> System.out.println(o);

然而这还不是最简的.

Consumer c = System.out::println;

它表示的意思就是针对输入的参数将其调用 System.out 中的静态方法 println 进行打印。

原文地址:https://www.cnblogs.com/feiqiangsheng/p/15174607.html