当前位置:网站首页>lambda表达式
lambda表达式
2022-04-23 05:41:00 【hanyc..】
本例子中 ,从普通类->静态内部类->局部内部类->匿名内部类->lambda表达式,整体的代码繁杂程度由繁至简。
函数式接口:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
对于函数式接口,我们可以通过lambda表达式来创建该接口的对象
- lambda表达式只有一行代码的情况下才可以简化成一行,如果有多行,那么就用代码块包裹
- 前提是接口为函数式接口
- 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号(单个参数可以省略括号)
package creatthread;
public class TestLambda {
//2、静态内部类
static class DrinkSpirit implements Drink {
@Override
public void haveADrink(String name, String drinkType) {
System.out.println(name + "正在喝" + drinkType);
}
}
public static void main(String[] args) {
//3、局部内部类
class DrinkFanta implements Drink {
@Override
public void haveADrink(String name, String drinkType) {
System.out.println(name + "正在喝" + drinkType);
}
}
System.out.println("============普通类实现接口===============");
Drink drink1 = new DrinkCola();
drink1.haveADrink("张一", "可乐");
System.out.println();
System.out.println("============静态内部类==============");
Drink drink2 = new DrinkSpirit();
drink2.haveADrink("李二", "雪碧");
System.out.println();
System.out.println("============局部内部类==============");
Drink drink3 = new DrinkFanta();
drink3.haveADrink("王三", "芬达");
System.out.println();
System.out.println("============匿名内部类==============");
Drink drink4 = new Drink() {
//4、匿名内部类
@Override
public void haveADrink(String name, String drinkType) {
System.out.println(name + "正在喝" + drinkType);
}
};
drink4.haveADrink("赵四", "咖啡");
System.out.println();
System.out.println("============lambda表达式==============");
//5、lambda表达式
//lambda表达式返回的是接口
Drink drink5 = (name, drinkType) -> System.out.println(name + "正在喝" + drinkType);
drink5.haveADrink("钱五", "牛奶");
}
}
interface Drink {
public void haveADrink(String name, String drinkType);
}
//1、普通通过类实现接口
class DrinkCola implements Drink {
@Override
public void haveADrink(String name, String drinkType) {
System.out.println(name + "正在喝" + drinkType);
}
}
结果:

版权声明
本文为[hanyc..]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42732184/article/details/124356115
边栏推荐
- QT displays the specified position and size of the picture
- Cross platform packaging of QT packaging program
- Generation of straightening body in 3D slicer
- POI generates excel and inserts pictures
- Object to map
- QT drawpixmap and DrawImage blur problem
- Transposed convolution
- XXL job pit guide XXL RPC remoting error (connect timed out)
- windows连接mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
- mysql实现主从复制/主从同步
猜你喜欢
随机推荐
热键,界面可视化配置(界面交互)
mysql中duplicate key update
C语言——恶搞关机小程序
Interview Basics
Hongji micro classroom | cyclone RPA's "flexible digital employee" actuator
提升Facebook触及率和互动率攻略 | 智能客服帮您抓住用户的心
尚硅谷 p290 多态性练习
QSS, qdateedit, qcalendarwidget custom settings
Summary of redis classic interview questions 2022
‘EddiesObservations‘ object has no attribute ‘filled‘
QSslSocket::connectToHostEncrypted: TLS initialization failed
[machine learning] scikit learn introduction
Breadth first search topics (BFS)
2-軟件設計原則
refused connection
freemark中插入图片
Parameter analysis of open3d material setting
Radar equipment (greedy)
acwing854. Floyd finds the shortest path
catkin_package到底干了什么








