函数式接口介绍
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 进行打印。