美文网首页
31 Lambda表达式

31 Lambda表达式

作者: ca8519be679b | 来源:发表于2020-03-22 13:16 被阅读0次

python也接触过lambda表达式,这里是一种函数式编程思想,通过输入获得输出

我们之前实现多线程,可以新建Thread子类实现run方法,也可以重写Runnable实现类,复写run方法,然后实例传给Thread去初始化,也可以在main中使用匿名内部类new Runnable(){..}里面复写run方法,但其实我们比较关心的就是这个run怎么写

jdk1.8以后引入了lambda表达式

1

我们如上就是lambda表达式的体现,是不是感觉省了很多代码,使用匿名,同时直接在实例时,参数使用()->{代码块}直接实现run功能

lambda表达式格式

(参数列表)->{重写接口代码块} 当没有参数,参数列表为空,如上图的代码

2

我们需要编写一个接口,因为lambda表达式必须是重写接口的代码(觉得这个限制不如Python灵活)

3

定义主类定义某一方法区调用接口,并在main里重写代码,如上,我们可以灵活控制其计算类型

lambda表达式精简写法

之前我们说了Lambda表达式的常规写法,现在我们介绍精简写法

1.参数列表的数据类型可以省略不写

2如果参数只有1个,那参数和类型都可以不写

3如果{}代码只有一行,可以省略{},有返回值可以省略return分号,这几个必须一起省略

4

如上,我们把参数类型省略,同时省略return,{},分号

5

如上,无参的lambda省略

lambda表达式注意事项

1 必须是有接口,而且接口有且只有一个抽象方法

2使用lambda表达式必须有上下文推断,可以保证我们输入参数类型(虽然我们可以省略表达式类型),如图4

相关文章

网友评论

      本文标题:31 Lambda表达式

      本文链接:https://www.haomeiwen.com/subject/oilmyhtx.html