03.Lambda表达式省略写法

48 阅读1分钟

03.Lambda表达式省略写法

在lambda表达式的标准写法基础上,可以省略写,规则如下:

  1. 小括号内的参数类型可以省略
  2. 如果小括号内有且仅有一个参数,则小括号可以省略
  3. 如果大括号内有且仅有一个语句,可以同时省略大括号,return 关键字及语句分号。
package com.lambda.service;

/**
 * @Author:kaiyang.cui
 * @Package:com.lambda.service
 * @Project:jdk8
 * @name:StudentService
 * @Date:2023/4/2 下午6:53
 * @Filename:StudentService
 * @Description:StudentService
 * @Version:1.0
 */
public interface StudentService {

    String show(String name, Integer age);
}
package com.lambda.service;

/**
 * @Author:kaiyang.cui
 * @Package:com.lambda.service
 * @Project:jdk8
 * @name:OrderService
 * @Date:2023/4/2 下午6:54
 * @Filename:OrderService
 * @Description:OrderService
 * @Version:1.0
 */
public interface OrderService {

    Integer show(String name);
}

简写lambda表达式

package com.lambda;

import com.lambda.service.OrderService;
import com.lambda.service.StudentService;

/**
 * @Author:kaiyang.cui
 * @Package:com.lambda
 * @Project:jdk8
 * @name:Demo01
 * @Date:2023/4/2 下午2:59
 * @Filename:Demo01
 * @Description:
 * @Version:1.0
 */
public class Demo08 {

    public static void main(String[] args) {

        // 正常写法
        goStudent((String name,Integer age)->{
            return name + age;
        });
        System.out.println("--------------------------------");
        goOrder((String name)->{
            return 666;
        });


        // 简写
        goStudent((name,age) ->{
            return name + age;
        });

        // 再简写
        goStudent((name,age) -> name + age);
    }



    public static void goStudent(StudentService studentService){
        studentService.show("张三",18);
    }

    public static void goOrder(OrderService orderService){
        orderService.show("李四");
    }

}