lambda的双冒号语法
lambda的双冒号语法
在学习过程中最近经常能碰见java中的双冒号::语法形式
举例:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(System.out::println);
String name = null;
LambdaQueryWrapper<Book> lqw = new LambdaQueryWrapper<Book>();
lqw.like(Book::getName,name);
bookDao.selectList(lqw);
查阅相关资料了解到双冒号
::
语法是lambda表达式的一种表示
我们先来复习一下Lambda表达式
Lambda表达式
1.组成格式
- 组成Lambda表达式的三要素:形式参数,箭头,代码块
- Lambda表达式的格式
①、格式:(形式参数) -> {代码块}
②、形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
③、->:由英文中画线和大于符号组成,固定写法。代表指向动作
④、代码块:是我们具体要做的事情,也就是以前我们写的方法体内容
2.理解
Lambda表达式个人理解是用来简化匿名内部类的书写的一种语法形式
/**
* @ProjectName: Springboot
* @Package: com.zhn
* @ClassName: Test
* @Date: 2023/4/6 19:56
*/
interface LambdaDemo
{
int demo(String str);
}
public class Lambda
{
@Test
public void test()
{
LambdaDemo lambdaDemo1 = new LambdaDemo() {
@Override
public int demo(String str) {
return Integer.valueOf(str);
}
};
LambdaDemo lambdaDemo2 = (str)->{
return Integer.valueOf(str);
};
LambdaDemo lambdaDemo3 = (str)->{
return Integer.valueOf(str);
};
LambdaDemo lambdaDemo4 = (str)-> Integer.valueOf(str);
LambdaDemo lambdaDemo5 = Integer::valueOf;
}
}
可见当函数的入参和返回值一致时可以使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zhn&Blog!
评论