- 相关类:
Supplier
、Consumer
、Predicate
、Function
-
什么是函数式接口
- 有且只有一个抽象方法的接口被称作函数式接口
- 函数式接口可以直接写成Lambda表达式
- 函数式接口还可以写成方法引用的方式
- 函数式接口对外展示的是一个规范,只需要满足这种规范即可成为其实现
- 函数式接口可以类比为多态在函数式结构上的实现
package com.yusian.function; import java.util.function.Supplier; /** * Supplier是一个函数式接口,返回任意类型数据,是一个容器 * 他是对所有无参并返回一个对象的结构抽象,一切无参并返回对象的方法都可以成为他的实现 * 这使得编程变得更加开放,可以想像是多态在函数式编程方式上的实现 */ public class SupplierDemo { public static void main(String[] args) { // 1、匿名内部类 Supplier<Person> sup1 = new Supplier<Person>() { @Override public Person get() { return new Person(); } }; Person p1 = sup1.get(); // 2、Lambda表达式 Supplier<Person> sup2 = () -> new Person(); Person p2 = sup2.get(); // 3、方法引用 Supplier<Person> sup3 = Person::new; Person p3 = sup3.get(); // 4、本地方法模拟 Person p4 = supplier(); // 5、只要满足函数式结构就可以 Supplier<Person> sup5 = SupplierDemo::supplier; Person p5 = sup5.get(); System.out.println(p1); System.out.println(p2); System.out.println(p3); System.out.println(p4); System.out.println(p5); } /** * 获取一个Person实例对象 * @return Person */ public static Person supplier() { return new Person(); } }
[……]
Java内置的几个函数式接口的基本使用
Leave a reply