java函数式编程1-函数式接口
1. java引入函数式接口定义的背景
java是面向对象编程的语言,方法之间只能传递数据。为了使java更加强大,使其能够传递行为事件,java设计者们引入了函数式编程的概念。通过函数式接口可以使java程序很好的表达一种行为事件。
2. 何为函数式接口
函数式接口:从概念上讲,只要接口中只有一个抽象方法的接口,都可以称为函数式接口。
由于默认方法(java8之后,接口允许有默认实现方法)有一个实现,所以它们不是抽象的。如果一个接口声明了一个覆盖java.lang.Object的一个公共方法的抽象方法,那么这也不计入该接口的抽象方法计数,因为该接口的任何实现都将具有来自java.lang.Oobject或其他地方的实现。
可以在函数式接口上标注@FunctionInterface注解,显示的表明该接口为一个函数式接口。如果满足函数式接口概念,不加注解也可以
3. 常见的4中函数式接口
| 接口名称 | 入参 | 返回 |
|---|---|---|
| Consumer |
T | 无 |
| Supplier |
无 | T |
| Function<T,R> | T | R |
| Predicate |
T | Boolean |
4. 函数式接口实例
在java8之前,创建一个接口实例,需要实现该接口,或者通过匿名内部类的形式创建。
在java8之后,可以通过如下的方式快速表达一个函数式接口实例。以Consumer、Supplier函数接口为例
1. lambda表达式: Consumer<Integer> consumer = integer -> System.out.println(integer);
2. 方法引用: Consumer<Integer> consumer1 = System.out::println;
3. 构造方法引用: Supplier<String> supplier = String::new;

浙公网安备 33010602011771号