🍔Lambda表达式
简单讲解
Lambda 是函数话编程,Java8 引入的特性,有广泛使用.
主要是用作解决匿名内部类
overwrite
的问题,替代可函数化的interface
作为参数进行传递
快速上手
比如这里有如下代码,写线程时很常见,Runnable 是一个函数化的接口,可以用 Lambda 简化
函数化接口,就是内部只有一个抽象方法的接口.
new Thread(new Runnable() { // 接口名
public void run() { // 方法名
System.out.println("Thread run()");
}
}).start();如下
- 省略接口名和方法名
new Thread(() -> System.out.println("新的线程")).start();
进一步
public class Lambda { |
作用域
public class Lambda2 { |
forEach
public class ForEach { |
多线程
例如我们需要一个实现 Runnable 接口的名为
myYield
的对象下面是三种方法:
创建新类
- 复杂,对于像是 Runnable 这种函数化接口,这样实现起来麻烦
public class TestYield { |
匿名内部类
- 比上面的简单些,但还可以用 Lambda 更简化
public class TestYield { |
Lambda
- 在会用 Lambda 情况下,代码可读性和简洁度大于匿名内部类
public class TestYield { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ⭐️齐下无贰⭐️!
评论