1.1 第一个Lambda表达式
(1)Swing 是一个与平台无关的 Java 类库,用来编写图形用户界面(GUI)。
(2)Lambda 表达式中无需指定类型,程序依然可以
编译。这是因为 javac 根据程序的上下文(addActionListener 方法的签名)在后台推断出
了参数 event 的类型。这意味着如果参数类型不言而明,则无需显式指定。稍后会介绍类 型推断的更多细节,现在先来看看编写 Lambda 表达式的各种方式。
(3)例 2-8 ActionListener 接口:接受 ActionEvent 类型的参数,返回空
public interface ActionListener extends EventListener {
public void actionPerformed(ActionEvent event);
}
ActionListener 只有一个抽象方法:actionPerformed,被用来表示行为:接受一个参数,
返回空。记住,由于 actionPerformed 定义在一个接口里,因此 abstract 关键字不是必需
的。该接口也继承自一个不具有任何方法的父接口:EventListener。
这就是函数接口,接口中单一方法的命名并不重要,只要方法签名和 Lambda 表达式的类型匹配即可。
(4)
要点回顾
Ŗ Lambda 表达式是一个匿名方法,将行为像数据一样进行传递。
Ŗ Lambda 表达式的常见结构:BinaryOperator<Integer> add = (x, y) → x + y。
Ŗ 函数接口指仅具有单个抽象方法的接口,用来表示 Lambda 表达式的类型。
内部迭代。