一.函数式编程
1.定义:即为使用Lambda表达式替代某些匿名内部类
2.Lambda表达式:
-
JDK8 开始新增的一种语法形式,它表示函数
-
可以用来替代某些匿名内部类对象,从而让程序更简洁,可读性更好
-
(被重写方法的形参列表) ->{ 被重写方法的方法体代码 }只能简化函数式接口的匿名内部类
函数式接口:有且仅有一个抽象方法的接口;将来我们见到的大部分函数式接口,上面都可能会有一个@FunctionalInterface的注解,该注解用于约束当前接口必须是函数式接口。
-
参数类型可以省略不写
-
如果只有一个参数,参数类型省略的同时,“()”也可以省略。但多个参数不能省略“()“。
-
如果Lambda表达式中只有一行代码,大括号可以不写,同时要省略分号。如果这行代码是return语句,也必须去掉return。
二.方法引用
- 静态方法引用:
(1)格式: 类名::静态方法
(2)使用场景:如果某个Lambda表达式里只是调用一个静态方法,并且->前后参数的形式一致,就可以使用静态方法引用。
2.实例方法引用:
(1)格式:对象名::实例方法
(2)应用场景:如果某个Lambda表达式里只是通过对象调用一个实例方法,并且->前后参数的形式一致,就可以使用实例方法引用。
3.特定类型的方法引用:
(1)格式:特定类的名称::方法
(2)场景:如上
4.构造器引用
(1)格式:类名::new
899

被折叠的 条评论
为什么被折叠?



