2013-10-13 | 阅读(586)
过去,我们使用匿名类的实现像 ActionListener 这样的接口,即使最简单的情景都需要写上五六行代码,这就显得有些累赘了。因为其实我们在 new ActionListener {} 时就是在创建一个 ActionListener 子类型,重载了方法,并初始化一个实例出来。现在我们手上有了 Lambda 表达式这一武器的话,就变得简单明了了,所以说 Lambda 是一种轻量级的实现机制。
这里是几个 Lambda 表达式的样子:
|
(int x, int y) -> x + y //两整形参数,返回它们的和 () -> 42 //无参数,直接返回 42 x -> 100; //可推断出参数 x 的类型 (String s) -> { System.out.println(s); } //传入一个字符,只执行一个操作,无返回值 |
Lambda 的格式就是三部分:参数列表,-> 分隔符,执行体。其他语方的 Lambda 格式都这样的,可能就是分隔符不一样,如 Ruby 的 |,Scala 的 => 等。
执行体里的 return 只是标明返回到匿名方法的调用者,不是返回值的意思; 最上层是不能用 break 和 continue 关键字的,可用在循环中; 如果 Lambda 表达式有返回值,那么在每一条路径上都要有返回值或是抛出异常。路径上最后一条语句的返回值即为 Lambda 表达的返回值。 阅读全文 >>