13.JDK1.8新特性
第十三章【函数式接口、Lambda表达式】
1.函数式接口
内部有且只有一个抽象方法
内部可以包含若干个静态方法和default方法
2.接口中方法的定义
抽象方法
静态方法:使用 接口名.静态方法名
default:
3.lambda表达式
Java内部类的简写形式
接口 引用 = () -> {};
引用.方法()
4.预定义接口
Predicate:传递一个参数,返回一个boolean类型的值,一般用于判断
public boolean test(T t){}
Consumer
void accept(T t);
Function<T,R>:传一个数据,得到一个返回值
R apply(T t);
Supplier
T get();
5.方法的引用
静态方法的引用
类名::静态方法名
对象引用方法
对象::非静态方法
构造方法引用
Student::new
数组类型::new【方法中必须传递一个长度】
实例方法的引用
类名::非静态方法
条件:
-
抽象方法的第一个参数,作为被引用方法的调用对象,即被引用的方法一定可以被该抽象方法的第一个参数去调用
-
接口中抽象方法除了第一个参数的其他参数,要作为被引用方法的参数列表
-
被引用方法和抽象方法返回类型一致