🍅 Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强) 🍅 基础推荐:Java基础教程系列 🍅 实战推荐:Spring Boot基础教程 🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者? 、Java架构师奋斗者💪 🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ?留言 📝
一、什么是Lambda 表达式?
Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。
虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法。
JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。
简单明了,函数式接口就是为了Lambda 表达式而生的。
二、Lambda表达式的推导过程
1、匿名内部类 --> Lambda表达式 --> 简化Lambda表达式
package java8.lamda;
public class LamdaTest {
public static void main(String[] args) {
IStudent student = new IStudent() {
@Override
public void study(String technology,int time) {
System.out.println("匿名内部类,"+technology+time);
}
};
student.study("java",8);
IStudent student1 = (String technology,int time)->{
System.out.println("Lambda表达式改造(将类名和方法名去掉)"+technology+time);
};
student1.study("java",8);
IStudent student2 = ((technology, time) -> {
System.out.println("一级进化(去掉数据类型)"+technology+time);
});
student2.study("java",8);
IStudent student3 = ((technology, time) -> System.out.println("二级进化(简化括号)"+technology+time));
student3.study("java",8);
}
}
@FunctionalInterface
interface IStudent {
void study(String technology,int time);
}
2、控制台输出
更多内容详见:【Java8 新特性 2】java8 lambda表达式进阶
上一篇:Java零基础入门 18:java接口 下一篇:敬请期待
添加微信,备注1024,赠送Java学习路线思维导图
|