当前位置:网站首页>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
边栏推荐
- 热键,界面可视化配置(界面交互)
- [machine learning] scikit learn introduction
- SQL statement simple optimization
- MySQL triggers, stored procedures, stored functions
- The QT debug version runs normally and the release version runs crash
- Write the declaration of a function to return the reference of the array, and the array contains 10 string objects (notes)
- Idea plug-in --- playing songs in the background
- Utf8 to STD: string and STD: string to utf8
- Hongji micro classroom | cyclone RPA's "flexible digital employee" actuator
- 【华为机试】考试得分总数(如何处理答错的情况?回溯一次,代表答错一题)
猜你喜欢

QT drawpixmap and DrawImage blur problem

SQL statement simple optimization

Fletter next generation graphics renderer impaller

3d slicer中拉直体的生成

Deep learning object detection

Parameter analysis of open3d material setting

多线程与高并发(3)——synchronized原理

2 - software design principles

引航成长·匠心赋能——YonMaster开发者培训领航计划全面开启

deep learning object detection
随机推荐
qt. qpa. plugin: Could not find the Qt platform plugin “xcb“ in ““
Typescript interface & type rough understanding
windows连接mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
Duplicate key update in MySQL
数据安全入门产品——数据库审计系统详解
Generation of straightening body in 3D slicer
opensips(1)——安装opensips详细流程
Hongji micro classroom | cyclone RPA's "flexible digital employee" actuator
Golang implements Ping connectivity detection case through exec module
Pol / select / EPO
Common protocols of OSI layer
MySQL create Oracle exercise table
Object to map
refused connection
Qwebsocket communication
Frequently asked interview questions - 2 (computer network)
MySQL query uses \ g, column to row
2-软件设计原则
Markdown syntax support test
No.1.#_6 Navicat快捷键