文章目录
问题:
刷面经,博客输出,加深理解,2025.3.3 希望毕业前可以找到工作。
解决问题:
Lambda表示是主要是为了解决匿名内部类的问题,可以简化代码,主要用途就是代替匿名内部类。
语法:
0.总结
- ()-> {expression}
- 参数列表: 有参数或多个参数
- -> 分隔参数和函数体
- 函数体:可以是单行表达式或者代码块
1.无参数,无返回值
Runnable r = () -> System.out.println("Hello, World!");
r.run(); // 输出 Hello, World!
2.有参数,无返回值
Consumer<String> greet = name -> System.out.println("Hello, " + name);
greet.accept("Alice"); // 输出 Hello, Alice
3.多个参数有返回值
BinaryOperator<Integer> add = (a, b) -> a + b;
System.out.println(add.apply(3, 5)); // 输出 8
注意事项
1.只能用于实现只有一个抽象抽象方法的接口(函数式接口)
- 函数式接口定义:只能有一个抽象方法的接口。
- Lambda表达是属于函数式接口。
2.不能实例化变量
- lamba表达式本身是一个匿名函数,没有像类一样的状态,所以不可以。
3.lamba表达式中的this指针指向外部类
- lambda本身是一个函数,没有自己的实例,所以不会指向自己。