详解Java8中的Lambda表达式

网友投稿 243 2022-11-29


详解Java8中的Lambda表达式

Lambda是什么

Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑。

Lambda的基本语法

(expression)->expression 或 (expression)->{statements;}

Lambda最重要特点

用()->{}代码块替代匿名内部类

//(param)->expression;//(param)->statment;//(param)->{statments};//类型声明

MathOperation addition = (int a, int b) -> a + b;

//不用类型声明

MathOperation subtraction = (a, b) -> a - b;

例如:用lambda表达式实现Runable接口

//java8之前

new Thread(new Runable() {

@Override

public void run() {

System.out.println("hello");

}

}).start();

bqvRXyKqCd

//java8之后

new Thread( ()->System.out.println("hello") ).start();

代替comparator接口内部类

//java8之前

Comparator comparator = new Comparator(){

public int compare(Person p1, Person p2) {

if (p1.getAge() > p2.getAge())

return -1;

.....

}

}

//java8之后

Comparator comparator = (Person p1, Person p2) -> {

if (p1.getAge() > p2.getAge())

return -1;

.....

}

是不是代码变得清爽了许多

Lambda表达式和匿名类的对比

1、this关键字:匿名类的this关键字指向匿名类,而Lambda表达式的关键字指向包围Lambda表达式的类;

2、编译方式:Java编译器将Lambda表达式编译成类的私有方法,使用了java7的invokedynamic字节码指令来动态绑定这个方法;

最后说一句,Lambda表达式和Java8的新特性Stream()一起使用会更香哦!

以上就是详解Java8中的Lambda表达式的详细内容,更多关于Java8中的Lambda表达式的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IntelliJ IDEA 2020安装使用教程详解
下一篇:详解java实践SPI机制及浅析源码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~