lambda表达式通常是用来实现类或接口的,优点是无须声明,也无须重写了,但是有个限制就是这个接口中只能有一个方法,因为从lambda的表达式上我们就可以看出端倪了,直接调用类,传参数,连方法名都省了,如果不止一个方法,毫无疑问会产生冲突无法识别。
java lambda表达式的优缺点:
优点:
- 代码简洁,开发迅速
- 方便函数式编程
- 非常容易进行并行计算
- java引入lambda,改善了集合操作(引入Stream API)
缺点: - 代码可读性变差
2 .使得语言学习曲线陡峭,学习难度提升 - 性能方面,在非并行计算中,很多计算未必有传统的for性能要高
- 不容易进行调试
我写了个小demo,实现了对一个接口通过常见的三种实现方式(实现类重写方法、匿名内部类实现、lambda)的对比,其中就用到了lambda表达式。
场景:实现点击button,显示button名称。
OnClickListener.java
package com.hmkcode;
public interface OnClickListener {
void onClick(Button button);
}
Button.java
package com.hmkcode;
@lombook
public class Button {
private OnClickListener onClickListener;
private String name;
// click the button
public void click(){
this.onClickListener.onClick(this);
}
}
实现一:重写onClick方法
public class App implements