跳至主要內容

Lambda表达式


Lambda表达式

Lambda表达式本质上是一种匿名方法,将代码块作为函数参数,函数式接口,相当于一个匿名方法,主要作用是代替匿名内部类的烦琐语法。

Lambda表达式有三部分组成

  • 形参列表。可以自动类型推导,可以省略参数类型。只有一个参数,可以省略形参列表的()
  • 箭头(->)
  • 代码块{},代码块只有一条语句,可以省略{};代码块只有一条return语句,可以省略return关键字。

只有一个抽象方法的接口(函数式接口),都可以使用Lambda表达式的写法。

public interface MyListener{
    String doSomething(String a, int b);
}
MyListener listener = (String a, int b)->{
    String ret = a + b;
  	return ret;
}
// 自动类型推断
MyListener listener = (a, b)->{
    String ret = a + b;
  	return ret;
}

函数式接口

函数式接口代表只包含一个抽象方法的接口,函数式接口可以包含多个默认方法,类方法,但只能声明一个抽象方法。

Lambda表达式的结果就是被当成对象。