JDK8中增加了一个特性Lambda表达式, 这种表达式只针对有一个抽象方法的接口实现, 以简单的表达式形式实现接口功能来作为方法参数.
三个组成部分
参数列表 -> 表达式主体
语法格式
([数据类型 参数名, 数据类型 参数名,...])->{表达式主体}
具体说明
函数式接口 是指有且仅有一个抽象方法的接口,Lambda表达式就是Java函数式编程的体现,只有确保接口中有且仅有一个抽象方法,Lambd表达式才能顺利的推导出所实现的接口中的方法.
JDK8中,专门为函数接口引入了一个@FunctionalInterface 注解,该注解显示地标注了接口是一个函数式接口,并强制编译器进行更严格地检查.
方法引用和构造器引用,进一步简化Lambda表达式的书写
List<Integer> list = new LinkedList<>(); list.add(1); list.add(4); list.add(0); list.forEach(System.out::println);