P02 当参数只有一个的时候,lambda表达式的写法!

简化写法,请看代码示例:

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);
    }
}

猜你喜欢

转载自www.cnblogs.com/runmoxin/p/13194672.html