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

Java后端开发day39--方法引用

请添加图片描述
(以下内容全部来自上述课程)
在这里插入图片描述

1.1 含义

把已经有的方法拿过来用,当作函数式接口中抽象方法的方法体。
已经有的方法:可以是Java自己写的,也可以是第三方的。
请添加图片描述
示例语句:
::是方法引用符。

//用类名调用已有的方法
Arrays.sort(arr,FunctionDemo1::substraction);

注意点:

  • 引用处必须是函数式接口---->选中使用的方法ctril+B–选中里面的形参显示@FunctionalInterface√
  • 被引用的方法必须已经存在
  • 被引用方法的形参和返回值需要跟抽象方法保持一致
  • 被引用方法的功能要满足当前需求

请添加图片描述

1.2 引用静态方法

**格式:**类名::静态方法
范例:Integer::parseInt

list.stream().map(Integer::parseInt).forEach(s->System.out.print(s));

1.3 引用成员方法

格式:对象::成员方法

  1. 其他类:其他类对象::方法名
  2. 本类:this::方法名(静态方法无this,需要重新创建对象引用)
  3. 父类:super::方法名(引用处不能是静态方法,上同)

1.4 引用构造方法

格式:类名::new
范例:Student::new
不需要管返回值,只用保持形参就行。

1.5 类名引用成员方法

格式:类名::成员方法
范例:String::substring

方法引用规则(此方法独有):

  1. 需要有函数式接口
  2. 被引用的方法必须已经存在
  3. 被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致
  4. 被引用方法的功能需要满足当前的需求

抽象方法形参的详解:

  1. 第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法。 ---->类名
    在Stream流当中,第一个参数一般表示流里面的每一个数据。
    假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法。
    就是:拿着流里面的每一个数据,去调用String类中的XXX方法,方法的返回值就是转换后的结果。
  2. 第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法。

局限性:

  • 不能引用所有类中的成员方法。
  • 是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能引用这个类中的方法。

请添加图片描述

1.6 引用数组的构造方法

格式:数据类型[]::new
范例:int[]::new

细节:
数组的类型,需要和流中数据的类型保持一致。
请添加图片描述

http://www.dtcms.com/a/163032.html

相关文章:

  • 【学习资源】知识图谱与大语言模型融合
  • 机器学习之五:基于解释的学习
  • Java语言使用GLM-4-Voice的交互示例
  • CSS Transition入门指南
  • 网络通讯【QTcpServer、QTcpSocket、QAbstractSocket】
  • 在 Windows 的终端安装并使用 azd 命令
  • CVE-2025-21756:Linux内核微小漏洞如何引发完整Root提权攻击(含PoC发布)
  • tornado_登录页面(案例)
  • 多地部署Gerrit Replication插件同步异常解决思路及方案(附脚本与CronJob部署)
  • 【大语言模型DeepSeek+ChatGPT+GIS+Python】AI大语言模型驱动的地质灾害全流程智能防治:风险评估、易发性分析与灾后重建多技术融合应用
  • Uniapp:设置TabBar
  • 从 Synchron 会议观察 Lustre/Scade 同步语言的演化 (1994 - 2024)
  • Ubuntu实现远程文件传输
  • Qt/C++开发监控GB28181系统/获取设备信息/设备配置参数/通道信息/设备状态
  • IOS 国际化词条 Python3 脚本
  • Python实例题:ebay在线拍卖数据分析
  • C#中winform窗体如何捕获键盘按键事件
  • 处理pdf文件的常用库unstructured和PyPDF2
  • centos上安装python的3.13版本
  • SpringBoot、微服务与AI场景题深度解析
  • 【Unity】使用LitJson保存和读取数据的例子
  • 微信小程序封装选择年月日时分秒组件
  • 基于 STM32 的智慧图书馆智能控制系统设计与实现
  • 什么是缓存?在NGINX中如何配置缓存以提升性能?
  • LSTM预测模型
  • JavaScript性能优化实战:从基础到高级的全面指南
  • MySQL 8.4.4 安全升级指南:从漏洞修复到版本升级全流程解析
  • AWS SQS 队列策略配置指南:常见错误与解决方案
  • Spring计时器StopWatch 统计各个方法执行时间和占比
  • 大前端开发——前端知识渐变分层讲解 利用金字塔原理简化前端知识体系