Lambda表达式
为什么引入lambda表达式?
- 避免内部类定义过多
- 去掉无意义代码,只留下核心逻辑
函数式接口
定义:任何借口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
对于函数式接口,可以通过lambda表达式来创建该接口的对象。
public class lambda {//3.静态内部类,把刚才实现的内部类粘贴过来加上static关键字static class micah2 implements milo{@Overridepublic void lam() {System.out.println("milo is working,too...");}}public static void main(String[] args) {milo m =new micah();m.lam();micah2 m1=new micah2();m1.lam();//4.局部内部类class micah3 implements milo {@Overridepublic void lam() {System.out.println("milo is working...3");}}micah3 m2=new micah3();m2.lam();//5.匿名内部类,没有类的名称,必须借助接口或者父类实现m= new milo() {@Overridepublic void lam(){System.out.println("milo is working...4");}};m.lam();/*************************///用lambda简化//!!!需提前将m声明为接口类型 在最上方有一个句子:milo m =new micah();m = () -> {System.out.println("milo is working...5");};//后续需要调用!lambda只起到一个实现接口的作用m.lam();}}//1.定义函数式接口
interface milo{void lam();
}//2.实现类
class micah implements milo{@Overridepublic void lam() {System.out.println("milo is working...");}
}
从2到5是一个不断简化的过程,在简化的过程中,实现单一功能的类,由常见的外部定义、实例化,到静态内部定义与实例化,再到成为一个局部类,成为一个匿名内部类,最后使用lambda表达式完成完全的简化,无需类定义即可完成对单一函数接口的实现,极大简化了代码量,并且无需查找上下文,一目了然。
在实现匿名内部类时,也会提示:

lambda的继续简化
是的,lambda在简化了函数型接口的实现后,自己还能继续简化。
public class lambda2 {public static void main(String[] args) {//lambda 表示简化merry m = (int a)->{System.out.println("Merry Christmas!"+a);};//no 1. 简化参数类型m = (a)->{System.out.println("Merry Christmas!"+a);};//no 2. 简化括号m = a -> {System.out.println("Merry Christmas!"+a);};//no 3. 简化大括号 (代码只有一行)m = a -> System.out.println("Merry Christmas!"+a);m.merrychris(2);}
}
interface merry{public void merrychris(int a);
}
仅有一行代码时才可以对大括号进行简化
多个参数也可以去掉参数类型,但是要雨露均沾,不能独宠。且必须加上括号!
lambda表达式只能用于简化函数式接口,不能简化内含多个抽象函数的接口!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/948089.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
详细介绍:Redis多租户资源隔离方案:基于ACL的权限控制与管理
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
求解 LCA 的三种方法及其比较
本文写于 2025 年 10 月 24 日。
昨天看到岁岁似今朝以“学不成名誓不还”的勇气学 LCA(树上最近公共祖先),并感叹“LCA 是我最严厉的母亲”,心血来潮,也学了一下。翻看着洛谷玲琅满目的题解,竟学会了三种方法,…
策略模式优化if-else
class Calculator:def __init__(self):self.strategy = Nonedef set_strategy(self, strategy):self.strategy = strategydef calculate_result(self, num1, num2):return self.strategy.execute(num1, num2)class Add…
P3232 [HNOI2013] 游走
考虑贪心。
随机游走则显然每条边期望经过次数越大则其编号应越小。
每条边的期望经过次数难以计数,考虑每个店期望经过次数,设计状态 \(f_i\) 表示点 \(i\) 期望经过次数。
转移:
\(f_i=\sum_{v\in e_i}f_v\cdot \…
FRP 后端无法获取请求者IP解决方案
FRP 后端无法获取请求者IP解决方案📝 FRP 后端无法获取请求者真实 IP?别慌,解决方案来啦!🧐 问题背景
当你使用 FRP 进行内网穿透或代理服务时,是否遇到过这样的困扰:
后端服务拿到的客户端 IP 全都是 FRP 服…
正睿 2025 NOIP 20连测 Day9
坐在前面的老哥 AK 了。他怎么这么成功,我怎么这么失败/ll。
T1小 W 有 \(n\) 个球,每个球都有一种颜色,其中第 \(i\) 个球初始的颜色可以用正整数 \(a_i\) 来表示,一共有 \(m\) 种颜色。
在一次染色操作中,小 W …
计算几何初步:CCW 与判断两线段的相交性
本文写于 2025 年 9 月 18 日。
前言
昨天在正睿的“IOI 普及联赛”中,有这样一道题,极大地冲击了本蒟蒻的心灵。赛后查看题解,此题竟然涉及计算几何,这更是本蒟蒻从未涉足的领域。我遂查询资料,学习了 CCW 算法以…
如何选择合适的团队共享网盘?坚果云、亿方云等15款产品横向测评
面对市场上琳琅满目的产品,管理者和技术决策者往往在可靠性、性能、安全性与成本之间难以取舍。本篇文章将围绕企业共享网盘,从功能覆盖、同步效率、安全合规、协作体验等维度,深度评测并对比市面上15款主流产品,帮…
软件工程学习日志2025.10.27
🎯 今日目标
完成基于Trae框架的IT岗位求职记录系统开发,重点训练数据库的增删改查操作能力
💻 项目启动:9:00 AM
技术选型确定
今天开始着手开发老师布置的IT岗位求职记录系统。经过技术调研,我决定采用以下技…
深入解析:TCP/IP 四层模型协作流程详解
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
Windows全版本激活教程(仅供测试)
Windows全版本激活教程(仅供测试)Windows 系统激活指南
注意:本文档及所提供的工具仅供学习、测试和环境验证使用。请确保您遵守软件许可协议,在合法范围内使用。
免责声明
使用任何激活工具都存在潜在风险,包括但不…
20251027周一日记
20251027周一日记前些日:
1.周五玩得挺爽,熬到五点多睡的,转天有点遗憾但还是玩得挺爽。见识到了大城市之间的差距。
2.周六回家,出去吃饭;周日在家,出去吃饭。听家人说各有各在拼搏的方向。
今日:
1.早上睡过了…
Robot Queries
题目传送门
前置知识——向量的加减
\((x_1,y_1) \pm (x_2,y_2) = (x_1\pm x_2,y_1\pm y_2)\)。
满足交换律和结合律。
题目大意
有一个在 \((0,0)\) 的点。现在给出 \(n\) 个操作序列 \({f}\),每个指令形如 \((x, y)…