携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情
.......压力压力压力,这两天在看代码,老大可能感觉我干瞪眼看效果不会很明显,所以今天给我分了小任务,其实还是看代码......在看的过程中,发现前辈们写的代码中基本上都是 lambda 表达式,之前自己对 lambda 表达式是有了解的,但我在写代码的时候没有主动使用过,这下碰到了,就好好熟悉一下吧......
Lambda 表达式
Lambda 表达式,也可称为闭包。是推动 Java8 发布的最重要的特性。是一个匿名函数方法,可以把 Lambda 表达式理解为一段可以传递的代码,可以写出更简洁、更灵活的代码。
为什么使用 Lambda 表达式
如上面所说,我们可以把 Lambda 表达式理解为一段可以传递的代码(将代码像数据一样进行传递)。Lambda 表达式允许把函数作为一个方法的参数,使用 Lambda 表达式可以写出更简洁、更灵活的代码,而其作为一种更紧凑的代码风格,使 Java 的语言表达能力得到提升。
案例
如果分别用成员内部类、局部内部类 以及 匿名内部类 的写法去实现 Runnable 接口,重写其中的 run() 方法进行线程的创建和启动:
public class LambdaDemo {
//成员内部类
class CreateThread01 implements Runnable {
@Override
public void run() {
System.out.println("成员内部类创建了线程!");
}
}
public static void main(String[] args) {
//局部内部类
class CreateThread02 implements Runnable {
@Override
public void run() {
System.out.println("局部内部类创建了线程!");
}
}
//匿名内部类
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("匿名内部类创建了线程!");
}
}
//成员内部类方式
LambdaDemo lambdaDemo = new LambdaDemo();
CreateThread01 createThread01 = lambdaDemo.new CreateThread01();
new Thread(createThread01).start();
//局部内部类方式
CreateThread02 createThread02 = new CreateThread02();
new Thread(createThread02).start();
//匿名内部类方式
new Thread(runnable).start();
}
}
执行结果:
成员内部类创建了线程!
局部内部类创建了线程!
匿名内部类创建了线程!
可以看出以上写法去创建并启动线程,代码是比较繁琐的,如果使用 Lambda 表达式的形式,就会非常简洁,如下:
//Lambda 表达式方式
new Thread(() -> System.out.println("Lambda 创建了线程!")).start();
怎么说,今天就先简单做个引入,感觉 Lambda 表达式使用起来确实很简洁,能减少代码量,但是,代码简洁了,就使可读性降低了,我现在看前辈们的 Lambda 表达式,有些吃力......还是不够熟练......
希望本文能够帮到你,如有错误,望指正!
我向你敬礼啊,Salute!