标签:匿名内部类 过多 color 其他 例子 ide main 经典 www
一、函数式接口
在介绍lambda表达式之前,我们需要了解什么是函数式接口,因为函数式接口是lambda表达式应用最多的地方。
1、函数式接口的定义:
2、函数式接口例子
public interface Runnable{ public abstract void run(); }
上述代码中,我们以Runnable接口为例(是多线程相关接口),这个接口中只包含一个抽象方法,没有其他的方法,这就叫做函数式接口。
二、为什么要使用lambda表达式
三、lambda表达式使用方法
1、lambda表达式语法:
(parameter 1,parameter 2,....)-> expresion
2、lambda表达式实例
毫无疑问,实现Runnable接口是函数式接口的经典例子,下面我们用代码介绍lambda表达式的使用方法:
(1)首先我们放出Runnable的源代码
@FunctionalInterface public interface Runnable { public abstract void run(); }
可以看到,Runnable类中只含有一个run()方法,所以是典型的函数式接口。
(2)使用匿名内部类
public class Demo2{ public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println("我使用的是匿名内部类"); } }).start(); } }
(3)使用lambda表达式
public class Demo2{ public static void main(String[] args) { new Thread(()->{ System.out.println("我是lambda表达式"); }).start(); } }
我们可以发现,使用lambda表达式后,十分简洁,用了极少的代码完成了一个类做的事情!
四、lambda表达式的简化
(1)、可选类型声明:可以不用声明参数类型,编译器可以统一识别参数值
(2)、可选参数圆括号:0个或1个参数无需圆括号,但多个参数需要定义圆括号
(3)、可选的花括号:如果方法体只包含一个语句,就可以不使用花括号
上述说明的lambda表达式简化,感兴趣的小伙伴可以自己尝试一下~
注:如果对匿名内部类不是很了解的同学可以查看我的另一篇博客java内部类 https://www.cnblogs.com/mikellee/p/13995504.html
好了,今天lambda的讲解就到这里,在这里我只讲解了最典型的应用场景,即用lambda替代匿名内部类。其实lambda表达式还有其他应用场景,比如使用lambda表达式对集合进行迭代、用lambda表达式实现map与reduce等等,感兴趣的同学可以自行查阅哦~
标签:匿名内部类 过多 color 其他 例子 ide main 经典 www
原文地址:https://www.cnblogs.com/mikellee/p/14026514.html