简化写法,请看代码示例:
package com.company; /** * 此类用于演示Lambda表达式的简化写法 * 情况说明: 当表达式中只有一个参数的时候,我们可以对表达式的简化写法有哪些? */ public class LambdaDemo01 { /** * 此处是一个在LambdaDemo01类中编写的一个接口, 用于演示lambda表达式的应用 * 函数式接口: 在接口中只有一个抽象方法的接口 */ interface Printer{ void printSomething(String string); } public void showPrint(String string, Printer printer){ printer.printSomething(string); } public static void main(String[] args) { LambdaDemo01 demo01 = new LambdaDemo01(); String string = "hdghdajja"; // 方式一: 参数的类型和变量名都写,这也是最完整的写法 /*Printer printer = (String val) -> { System.out.println(val); };*/ // 方式二: 当参数列表中只有一个参数的时候, 去掉参数类型也是可以的 /*Printer printer = (val) -> { System.out.println(val); };*/ // 当只有一个参数的时候,甚至可以不写小括号 /*Printer printer = val -> { System.out.println(val); };*/ // 当只有一个参数的时候, 同样的连代码块的花括号也是可以不用写的. Printer printer = val -> System.out.println(val); demo01.showPrint(string, printer); } }