JAVA深化篇_40—— Lambda表达式介绍

Lambda表达式介绍

Lambda简介

Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。

在Java语言中,可以为变量赋予一个值:

能否把一个代码块赋给一变量吗?

在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。

甚至我们可以让语法变得更简洁。

在Java 8里面,所有的Lambda的类型都是一个接口,而Lambda表达式本身,也就是”那段代码“,需要是这个接口的实现。这是我认为理解Lambda的一个关键所在,简而言之就是,Lambda表达式本身就是一个接口的实现。直接这样说可能还是有点让人困扰,我们继续看看例子。我们给上面的aBlockOfCode加上一个类型:

这种只有一个接口函数需要被实现的接口类型,我们叫它”函数式接口“。为了避免后来的人在这个接口中增加接口函数导致其有多个接口函数需要被实现,变成"非函数接口”,我们可以在这个上面加上一个声明@FunctionalInterface, 这样别人就无法在里面添加新的接口函数了。

Lambda作用

最直观的作用就是使得代码变得异常简洁。

接口要求

虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法。

jdk 8 中有另一个新特性:default, 被 default 修饰的方法会有默认实现,不是必须被实现的方法,所以不影响 Lambda 表达式的使用。

@FunctionalInterface注解作用

@FunctionalInterface标记在接口上,“函数式接口”是指仅仅只包含一个抽象方法的接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/141866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv车牌识别<二>

目录 一、车牌识别算法流程 二、车牌检测 一、车牌识别算法流程 在解释ANPR代码之前,需要明白主要步骤和使用ANPR 算法的任务。ANPR 有两个主要步骤:车牌检测和车牌识别。车牌检测的目的是在整个视频帧中检测到车牌位置。当在图像中检测到车牌时,分割的…

SAP系统供应商预付款请求和预付账款业务

最近搞清帐! 在SAP中处理客户或供应商的预收/预付款相关业务流程操作说明, 首先由业务部门(销售或采购)下达销售/采购订单,同时基于订单提交预收/预付申请,客户/供应商款项到账时,由财务部门在SAP中勾选申请单来收付款;最后在财务转应收/应付转发票时自动核销。预付…

SAP 事件:SET PF-STATUS 和AT LINE-SELECTION共用

Write List中,如果同时使用了SET PF-STATUS 和 AT LINE-SELECTION,会发现双击的时候不好用了! 怎么办?其实,只要设置F2功能键”PICK”就OK了。 2007年12月11日修改: 如图: 例: REPORT z_barry_test_pic…

放假通知!2024年全国中小学寒假时间发布!

进入冬季, 学生们都迫不及待地 期盼着寒假的到来。 近日,全国多地已经明确了 2024年中小学寒假的起止时间。 一起来看看你所在的城市寒假放几天 北京 据“首都教育”微信公众号消息, 普通中小学、中等职业学校 义务教育阶段2024年寒…

有什么方法可以改善CRM实施投资回报?

数据统计显示,几乎70%以上CRM客户管理系统项目的投资回报是负数。这意味着超过半数的CRM项目的结果是失败的。那么我们有什么方法可以改善CRM实施投资回报吗?当然有,下面我们就来说一说。 如何改善CRM实施投资回报 首先,您选择的…

IDEA调试总结

前言 由于 IDEA 每个人使用的版本不同以及快捷键的设置不同,所以忽略了快捷键的使用。如果不知道快捷键请在 IDEA 工具栏里面点开 Run 菜单即可知悉 图标介绍 下面咱们进入看图说话环节,下列图标小伙伴知道是啥功能么?日常开发进行 Debug 使…

记录一个错误

通过Resource注解,将IStateHandler接口的实现类 StateHandlerImpl注入进来 Resource private IStateHandler stateHandler;Resource注解默认按照名称进行装配,这里抛出异常是因为IStateHandler和StateHandlerImpl都被 Spring 容器管理,在进行…

requestAnimationFrame是什么?介绍 如何使用?适用场景?有哪些缺点和优点,兼容性怎么样?

文章目录 前言是什么?如何使用适用场景优点和缺点兼容性后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端系列文章 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技…

【nlp】2.2 传统RNN模型

传统RNN模型 1 传统RNN模型1.1 RNN结构分析1.2 使用Pytorch构建RNN模型1.3 传统RNN优缺点1 传统RNN模型 1.1 RNN结构分析 结构解释图: 内部结构分析: 我们把目光集中在中间的方块部分, 它的输入有两部分, 分别是h(t-1)以及x(t), 代表上一时间步的隐层输出, 以及此时间步的…

gurobi最新下载安装教程 2023.11

文章目录 gurobi下载gurobi安装gurobi lincese获取添加系统环境变量 gurobi和python gurobi下载 https://www.gurobi.com/ 点击下载中心 download center 可以直接选择 Gurobi Optimizer下载 gurobi安装 gurobi可以通过python进行调用,但是需要先获得gurobi的li…

分布式服务器架构的优点有哪些?

在当今数字化时代,随着互联网的普及和技术的不断进步,企业和组织面临着处理越来越多的数据和用户请求的挑战。为了应对这些挑战,分布式服务器架构应运而生。分布式服务器架构通过将任务和数据分散到多个服务器上,提供了许多优点&a…

利用Python群组分析方法剖析客户行为

大家好,如今的企业有能力收集大量的数据,这些数据可以帮助企业制定更好的策略并了解其客户的行为。Cohort分析可以在其中发挥作用,Cohort分析是一种了解客户行为或用户互动的强大工具,并为企业提供有价值的见解,本文中…

fastdfs节点扩容

在巡检时发现,fastdfs 容量使用量比较大,原先规划的是1T,经过半年的运行已使用500G左右,并且按照每月100G左右 的量再增加。 fastdfs本身是分布式文件系统,扩容的方式有 添加storage磁盘 与 添加 group, 通…

Lua的resty-request库写的一个爬虫

为了使用Lua的resty-request库进行爬虫,需要先安装OpenResty和resty-request库,并将其引入到Lua脚本中。然后,可以使用resty-request库提供的函数来发送HTTP请求和处理HTTP响应。 以下是一个使用resty-request库进行爬虫的示例代码&#xff1…

SpringBoot 是否必传参数之嵌套校验(3)

文章目录 前言嵌套校验Controller层请求示例前言 本文基于SpringBoot 3.1.2,使用嵌套校验来优雅的处理参数是否必传校验。 嵌套校验 什么是嵌套使用呢?就是一个对象中包含另外一个对象,另外一个对象的字段也是需要进行校验。示例如下: User@Data public class User imple…

sqlyog安装和网址

网址Downloads webyog/sqlyog-community Wiki GitHub 1. 2. 3. 4. 5. 6. 7.

图论12-无向带权图及实现

文章目录 带权图1.1带权图的实现1.2 完整代码 带权图 1.1带权图的实现 在无向无权图的基础上,增加边的权。 使用TreeMap存储边的权重。 遍历输入文件,创建TreeMap adj存储每个节点。每个输入的adj节点链接新的TreeMap,存储相邻的边和权重 …

出入库管理系统vue2前端开发服务器地址配置

【精选】vue.config.js 的完整配置(超详细)_vue.config.js配置_web学生网页设计的博客-CSDN博客 本项目需要修改两处: 1、vue开发服务器地址:config\index.js use strict // Template version: 1.3.1 // see http://vuejs-templa…

传奇手游天花板赤月【盛世遮天】【可做底版】服务端+自主授权+详细教程

搭建资源下载地址:传奇手游天花板赤月【盛世遮天】【可做底版】服务端自主授权详细教程-海盗空间

概念解析 | LoRA:低秩矩阵分解在神经网络微调中的作用

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:基于低秩矩阵分解的神经网络微调方法LoRA LoRA: Low-Rank Adaptation of Large Language Models LoRA由如下论文提出,详细信息请参见论文原文 https://arxiv.org/abs/2106.0968…