当前位置: 首页 > news >正文

Java中方法引用(引用静态方法、引用成员方法(引用其他类的成员方法、引用本类的成员方法、引用父类的成员方法)、引用构造方法、其他调用方式、小练习)

方法引用:把已经存在的方法拿过来用,当作函数式接口中抽象方法的方法体

我们前面学到Arrays工具类中的sort方法,当我们需要指定排序规则时,需要传递Comparator接口的实现类对象,我们之前使用匿名内部类类的形式作为参数,进而使用Lambda表达式进行简化,其实,此处我们还可以使用方法引用来进行简化代码

要求:1.需要有函数式接口

           2.被引用的方法必须已经存在

           3.被引用方法的形参和返回值需要跟抽象方法保持一致

           4.被引用方法的功能要满足当前需求

 

1.引用静态方法(类名::静态方法),如何把字符串”1“,”2“,”3“,”4“,”5“转换为整数,使用stream流中的map方法

2.引用成员方法(对象::成员方法)

2.1  引用其他类对象::成员方法 

 2.2引用本类中的方法:本类对象::方法名

由于所在的类是main方法所在的类,而类方法含有static关键字,静态方法中没有this关键字,我们只能创建含有main方法的类对象来调用。

 2.3引用父类中的方法:

3.引用构造方法: 类名::new

将下列List集合中的数据转换为Student类

下面是Student类中的构造方法 

4.其他调用方式

抽象方法的形参决定了可以引用哪些类中的方法,例如s是String类的,所以它只能调用String类中的方法,当形参中只有一个参数时,默认被调用的方法需要是无参的成员方法。(所以具有局限性

5.引用数组的构造方法

 

 

小练习:

练习1:(第一个方法引用了Student类中的构造方法,第二个方法引用了数组的构造方法)

练习2:(第一个方法引用,因为抽象方法的形参是Student类的,所以决定了可以引用Student中的方法,而且形参中只有一个参数,默认被调用的方法是需要无参的成员方法,即getName())

 练习3:

 

相关文章:

Java中方法引用(引用静态方法、引用成员方法(引用其他类的成员方法、引用本类的成员方法、引用父类的成员方法)、引用构造方法、其他调用方式、小练习)

方法引用:把已经存在的方法拿过来用,当作函数式接口中抽象方法的方法体 我们前面学到Arrays工具类中的sort方法,当我们需要指定排序规则时,需要传递Comparator接口的实现类对象,我们之前使用匿名内部类类的形式作为参…...

整理了100道关于Python基础知识的练习题,记得收藏~

实例1.数字组合 题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。 total0 for i in range(1,5):for j in range(…...

OSG三维渲染引擎编程学习之七十七:“第七章:OSG场景图形交互” 之 “7.8 场景交互”

目录 第七章 OSG场景图形交互 7.8 场景交互 7.8.1 osgGA库 7.8.2 事件消息处理 7.8.3 程序抓图示例...

797.差分

输入一个长度为 n的整数序列。 接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n和 m。 第二行包含 n个整数,表示整数序列。 …...

为什么说要慎用BeanUtils,因为性能真的拉跨

1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是:有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患(后面例子…...

【项目设计】高并发内存池(六)[细节优化+测试]

🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…...

同模块设置不同应用主题方案

有时候公司内部会有不同应用但是有部分模块功能一样,只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的APP。如果APP主题不一致,该如果解决。 方案: 在不同应用的config.gradle 下面根据不同应用定义不同的a…...

centos7 安装 hyperf

​​​​​​PHP > 7.4 Swoole PHP 扩展 > 4.5,并关闭了 Short Name OpenSSL PHP 扩展 JSON PHP 扩展 PDO PHP 扩展 Redis PHP 扩展 Protobuf PHP 扩展 composer create-project hyperf/hyperf-skeleton 推荐安装项 全部选n php.ini [swoole] extens…...

RZ/G2UL核心板-40℃低温启动测试

1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计,一路千兆网口、一路CAN-bus、 3路TTL UART、LCD、WiFi、CSI 摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。HD-G2UL-CORE系列工业级核…...

PyQt5可视化 7 饼图和柱状图实操案例 ①Qt项目的创建

目录 一、新建Qt项目 二、添加组件和布局 三、添加资源 1. 新建资源文件 2. 添加图标资源 四、frameHead 1. toolBtnGenData 2. toolBtnCounting 3. comboTheme 4. comboAnimation 5. Horizontal Spacer 6. toolBtnQuit 7. 设置toolBtnQuit的功能 8. frameHead的…...

0104路径搜索和单点路径-无向图-数据结构和算法(Java)

文章目录2 单点路径2.1 API2.2 算法实现后记2 单点路径 单点路径。给定一幅图和一个起点s,回答“从s到给定的目的顶点v是否存在一条路径?如果有,找出这条路径。”等类似问题。 2.1 API 单点路径问题在图的处理邻域中十分重要。根据标准设计…...

Maxscale读写分离实施文档

Maxscale介绍 MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换。 使用Maxscale无需对业务代码进行修改,其自带的读写分离模块,能够解析SQL语句&…...

websocket实现一个简单聊天框

websoket在客户端的使用 事件:open/message/error/close 方法:send/close var socket new WebSocket(url)// 服务连接成功时触发 socket.addEventListener(open, function() {console.log("连接成功了") })// 主动给websocket发消息 socket…...

Docker-安装应用

一、安装Tomcat 注意:新版Tomcat安装之后启动访问会出现404 修改:删除原有的webapps目录,修改webapps.dist为webapps 免修改版本:billygoo/tomcat8-jdk8 二、安装Mysql 1、安装 拉取镜像 docker pull mysql:5.7 运行镜像…...

Web3中的营销:如何在2023年获得优势

Mar. 2022, Daniel在过去的一年里,让人们对你的Web3项目或协议感兴趣已经变得越来越有挑战性。许多曾经充满希望的项目因为各种不同的原因,都在熊市中倒下了。然而,那些迄今为止幸存下来的项目都有一个共同点:强大的社区。Web3营销…...

Java中==和equals区别

文章目录Java中和equals区别1. Integer中和equals的问题1.1 Integer类型且不是通过new创建的比较1.2 手动new Integer()创建的比较1.3 Integer和int比较2. String中和equals的问题3. DemoJava中和equals区别 equals是方法,是运算符: 如果比较的对象是基…...

计算机科学导论笔记(三)

五、计算机组成 计算机组成部件可以分为三大类(子系统):中央处理单元(CPU)、主存储器和输入/输出子系统。 5.1 中央处理单元(CPU) 中央处理单元用于数据的运算,分为算术逻辑单元&a…...

Stream——数字类型的字符串排序

文章目录前言什么是数字类型的字符串一个简单的坑demo拯救坑代码对象集合中的数字类型排序(有坑)对象集合中的数字类型排序 解决扩展将数字类型字符串数组转换为Integer集合总结前言 想到给数据进行排序,一开始头脑中想到的就是sorted(),本篇文章重点说…...

.NET 8 预览版 1 发布!

.NET 8 是一个长期支持(LTS) 版本。这篇文章涵盖了推动增强功能优先级排序和选择开发的主要主题和目标。.NET 8 预览版和发布候选版本将每月交付一次。像往常一样,最终版本将在 11 月的某个时候在 .NET Conf 上发布。 .NET 版本包括产品、库、运行时和工具&#xf…...

WebGIS学习路线

7年经验的webgis码农在此文跟大家分享一些一路走来的所见所闻。希望能帮助刚刚跨入这个门槛的你。 入门之前我相信你已经搞清楚了以下几个问题: 1.什么是webgis? 2.webgis能够解决什么样的问题? 3.为什么你要学习webgis? 如果还没考虑清楚也没关系,可能你看完这篇文章…...

VNote批量操作终极指南:如何一次处理百篇笔记提升效率 [特殊字符]

VNote批量操作终极指南:如何一次处理百篇笔记提升效率 🚀 【免费下载链接】vnote A pleasant note-taking platform in native C. 项目地址: https://gitcode.com/gh_mirrors/vn/vnote VNote批量操作是每个高效笔记用户必须掌握的技能&#xff01…...

基于Claude的多智能体代码编排框架:原理、实战与优化

1. 项目概述:当Claude遇上代码编排最近在GitHub上看到一个挺有意思的项目,叫0ldh/claude-code-agents-orchestra。光看名字,就能嗅到一股“组合拳”的味道——Claude、Code、Agents、Orchestra,这几个词凑在一起,指向性…...

2026年项目管理工具选型指南:主流方案对比与Gitee核心优势解析

在数字化转型深入与研发效能要求不断提升的2026年,选择一款适配团队基因、能够无缝衔接管理与开发流程的项目管理工具,已成为企业提升协作效率、保障项目交付的关键。面对市场上从轻量级协作到重型研发管理的各类方案,企业选型往往面临工具割…...

从IR压降到远程采样:大电流PCB供电设计的实战经验与陷阱规避

1. 项目背景与问题浮现几年前,我参与了一个项目,主电源是一个标准的开放式机架电源,需要为一个位于机箱内相对较远的模块提供5V、约20A的直流电。最初的供电路径设计是依靠PCB走线,我们使用了1盎司铜厚的板材。问题很快就出现了&a…...

为团队虚拟机开发环境统一配置Taotoken CLI工具

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为团队虚拟机开发环境统一配置Taotoken CLI工具 在团队协作的软件开发项目中,虚拟机(VM)是常见…...

Flutter + 开源鸿蒙跨端实战|基于空间地理信息的**城市全域智慧泊车调度与多维运维管理平台** Day1 项目架构基座与工程化环境搭建

Flutter 开源鸿蒙跨端实战&#xff5c;基于空间地理信息的城市全域智慧泊车调度与多维运维管理平台 Day1 项目架构基座与工程化环境搭建 欢迎入驻开源鸿蒙全栈技术实战社区&#xff1a;https://openharmonycrossplatform.csdn.net <!-- Schema.org 结构化数据 --> <…...

从AlexNet到R-CNN:我是如何用迁移学习在VOC数据集上实现目标检测精度翻倍的

从AlexNet到R-CNN&#xff1a;迁移学习在目标检测中的工程实践与精度突破 当我们在2012年第一次看到AlexNet在ImageNet竞赛中碾压传统方法时&#xff0c;很少有人能预见这个突破会如何彻底改变计算机视觉的格局。但就在一年后&#xff0c;R-CNN的诞生将这一变革延伸到了目标检测…...

硬件感知虚拟原型技术:软硬件协同设计的关键

1. 硬件感知虚拟原型技术概述在当今电子系统设计中&#xff0c;软件所占比重持续攀升。从通信设备到汽车电子&#xff0c;再到消费类产品&#xff0c;嵌入式软件已成为实现产品差异化的核心要素。这种转变源于软件实现的显著优势&#xff1a;低成本的设计变更、现场更新能力、快…...

微信防撤回终极指南:3分钟永久保存重要信息

微信防撤回终极指南&#xff1a;3分钟永久保存重要信息 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub_T…...

从Hello-World到Nginx:5个真实案例详解如何让Docker容器在后台稳定运行

从Hello-World到Nginx&#xff1a;5个真实案例详解如何让Docker容器在后台稳定运行 当你在终端输入docker run后&#xff0c;容器却像一阵风一样消失无踪——这种"闪退"现象往往是Docker新手遭遇的第一个认知颠覆点。不同于传统虚拟机&#xff0c;容器本质上是隔离的…...