Lambda表达式和链式编程

一、Lambda表达式

1. Lambda使用条件
Lambda表达式是 JDK8 的一个新特性,可以认为是对匿名内部类的一种简化,但不是所有的匿名内部类都可以简化为Lambda表达式。
只有函数式接口的匿名内部类才可以使用Lambda表达式来进行简化。

实现函数式接口注解 @FunctionalInterface

2.Lambda标准语法
(参数)->{执行方法} :参数可以无参或者有多个参数。
省略模式:
小括号内参数的类型可以省略,有且只有一个参数,则小括号可以直接省略。
大括号有且只有一个语句,无论是否有返回值。大括号可以省略。

//多个参数
(a, b)-> Boolean.valueOf(a) && Boolean.valueOf(b);
//一个参树
a->Boolean.valueOf(a)
//大括号只有一条语句
ExecutorService executorService= Executors.newFixedThreadPool(5);
executorService.execute(new Runnable() {
	@Override
	public void run() {
		System.out.println("简化");
	}
});
executorService.execute(()-> System.out.println("简化"));

Lambda表达式在处理集合操作中,使用非常广泛。

二、链式编程

使用链式编程提高了代码的可读性,使代码非常简洁。
在java中StringBuilder已经实现了链式的写法

StringBuffer buffer=new StringBuffer();
buffer.append("今天要").append("下大雨了,").append("回家收衣服。");

在开发过程中,为了避免频繁向实体类中的变量set赋值,通常使用lombok的 @Builder注解 引入Builder 模式

Third third=Third.builder().AppId("").appSecret("").build();

还可以在实体类使用注解开启链式编程 @Accessors(chain = true)

ThirdMeetingConfig third=new ThirdMeetingConfig();
		third.setAppId("").setAppSecret("");

在使用Mybatis-Plus时 , 筛选条件既可以使用Lambda表达式,又可以使用链式编程,编写方便,使代码非常简洁。

posted @ 2022-09-02 12:01  sowler  阅读(110)  评论(0编辑  收藏  举报  来源