Lambda表达式
1.为什么要使用lambda表达式?
原因:面向对象语法的弊端
在面向对象编程中,我们要使用一个类时,往往需要经过以下步骤:
①定义类
②创建对象
③使用对象、使用成员变量,使用方法
但是当我们不需要频繁的使用某个对象或者只使用一次时,上面的步骤是不是就显得较为繁琐和不必要呢?那怎么办呢?大家这时候可能想到可以使用匿名内部类。没错,我们确实可以使用匿名内部类,但是匿名内部类中的抽象方法也需要我们进行重写,代码依然比较多,所以这时候我们就可以使用Lambda表达式来对匿名内部类进行简化。
2.Lambda表达式的作用
简化匿名内部类的书写
3.Lambda表达式的格式
()-> {
方法体;
}
注: -> 是语法格式,无特殊含义
Lambda表达式三要素:形式参数、箭头、代码块
4.举例
例1:无参格式
简化前:
使用Lambda表达式简化后:
代码更少,关注点更加明确了!
分析:():里面没有内容,可以看成是方法形式参数为空
->:用箭头指向后面要做的事情
{ }:包含一段代码,我们称之为代码块,可以看成是方法体中的内容
例2:有参格式
简化前:
使用Lambda表达式简化后:
分析:
格式:(形式参数) -> {代码块}
形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
->:由英文中画线和大于符号组成,固定写法。代表指向动作
代码块:是我们具体要做的事情,也就是以前我们写的方法体内容
4.Lambda表达式省略规则
①参数类型可以省略 (Integer o1, Integer o2) 省略后 (o1, o2)
②如果参数有且仅有一个,那么小括号可以省略 (String s) 省略后 s
③如果代码块的语句只有一条,可以省略{} ; 和 return
5.Lambda表达式的使用前提
①方法的参数必须是接口
②接口中只能有一个抽象方法