函数式接口
1.概念及格式;
函数式接口;有且只有一个方法抽象方法的接口,可以有其他的方法.
格式;intface in{
//有且只有一个抽象方法
//可以有其它默认方法,静态方法,私有方法…}
2.@FunctionalInterface注解;
在定义"函数式接口"时,为防止发生定义错误.可以使用@FunctionalInterface注解,强制按照"函数式接口"的语法检查,如果语法错误.编译器将会方法错误.
@FunctionalInterface
interface ai {
public void show();
}
3.自定义函数式接口(无参无返回值);
4.自定义函数接口(有参有返回值);
Lambda的省略语法;
a),形参的数据类型都可以省略;
b).如果只有一个形参,可以同时省略小括号,和数据类型,
c).如果方法体重只有一句话,可以省略;大括号,return语句,语句后的分号.
5.lambda的应用_延迟执行;
6.Lambda的应用_Lambda作为参数和返回值;
7.类库接口_Lambda作为形参和返回值;
当"引用",可以理解"替代";
讲的都是使用"各种方法"来替代;Lambda表达式
所谓"方法引用"就是;使用现有的方法,来代替实现的Lambda.
8.使用自定义静态方法替代lambda.
9.使用类库静态方法代替Lambda;
10.替代原则;
替代的方法的形参,返回值类型,必须与被替代的"函数式接口"中抽象方法一致
11.对象成员方法替代Lambda;
12.使用super父类方法替代Lambda;
13.使用this本类方法替代Lambda;
14.类的构造器引用;
有无参构造
15.数组构造器引用;
16.常用函数式接口_生产者接口_Supplier接口;
a)生产结构;只生产数据;不接受参数;
17.消费者接口_Consumer接口_抽象方法;
1.消费者接口,只接受参数,无返回值;