Lambda
没有声明的方法,也即没有访问修饰符、返回值声明和名字
- (arguments) -> {body;}
- 参数的类型既可以明确声明,也可以根据上下文来推断。(a, b) 或 (int a, int b)
- 只有一个参数,且其类型可推导时,圆括号()可省略。例如:a -> return a*a
- 主体只有一条语句,花括号{}可省略。返回类型与该主体表达式一致
- 关键词 this 解读为写就 Lambda 的外部类,Java 编译器编译 Lambda 表达式并将他们转化为类里面的私有函数
函数式接口 @FunctionalInterface
- 函数式接口只能有一个抽象方法
- Lambda表达式能隐式地赋值给函数式接口:Runnable r = () -> System.out.println("h");