一、基本概念
Lambda表达式是 JAVA SE 的一个新特性。其主要作用就是简化代码,用更少的语句进行表达。它允许你运用表达式来代替接口,格式为 (参数,...)->{body} ,参数可以为空,body则代表使用这些参数的表达式。 Lambda 表达式可以看作是一个匿名函数。
二、lambda表达式的用法
// 1. 不需要参数,返回值为 2
() -> 2
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的和
(x, y) -> x + y
// 4. 接收2个int型整数,返回他们的乘积
(int x, int y) -> x * y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)上述的例子中有写参数类型的 (int x,int y)也有不写类型的 (x,y),参数类型可写可不写
三、lambda在集合中的用法
四、mybatis-plus中 lambda表达式的用法
LambdaQueryWrapper使用lambda表达式可以直接通过实体类get()属性,而QueryWrapper必须要与数据库的中表名一致,由于表名可能会很复杂,这时候相较而言LambdaQueryWrapper会比QueryWrapper便捷不少
public List<Dict> listByDictCode(DictCode dictCode) {
LambdaQueryWrapper<Dict> wrapper = Wrappers.lambdaQuery();
wrapper.eq(Dict::getDictCode, dictCode.getCode())
.eq(Dict::getEnabled, DictEnableEnum.VALID.getType());
return this.baseMapper.selectList(wrapper);
}