03.Lambda表达式省略写法
在lambda表达式的标准写法基础上,可以省略写,规则如下:
- 小括号内的参数类型可以省略
- 如果小括号内有且仅有一个参数,则小括号可以省略
- 如果大括号内有且仅有一个语句,可以同时省略大括号,
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("李四");
}
}