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.mzph.cn/bicheng/79029.shtml

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

相关文章

目前市面上知名的数据采集器

程序员爱自己动手打造一切,但这样离钱就会比较远。 市面上知名的数据采集工具 数据采集工具(也称为网络爬虫或数据抓取工具)在市场上有很多选择,以下是目前比较知名和广泛使用的工具分类介绍: 一、开源免费工具 Scra…

TP5兼容达梦国产数据库

1.首先数据库安装,部署时需配置大小写不敏感 2.安装PHP达梦扩展,一定要是对应版本(兼容操作系统)的扩展,否则会出现各种报错。参考官方文档:https://eco.dameng.com/document/dm/zh-cn/app-dev/php_php_new…

《解锁图像“高清密码”:超分辨率重建之路》

在图像的世界里,高分辨率意味着更多细节、更清晰的画面,就像用高清望远镜眺望远方,一切都纤毫毕现。可现实中,我们常被低分辨率图像困扰,模糊的监控画面、老旧照片里难以辨认的面容……不过别担心,图像超分…

整合 CountVectorizer 和 TfidfVectorizer 绘制词云图

本文分别整合 CountVectorizer 和 TfidfVectorizer 绘制词云图 ✨ CountVectorizer CountVectorizer 是 scikit-learn 中用于 文本特征提取 的一个工具,它的主要作用是将一组文本(文本集合)转换为词频向量(Bag-of-Words&#xf…

Linux 用户管理

用户管理是 Linux 系统管理中的重要组成部分,它涉及到用户和用户组的创建、删除、修改以及权限分配等操作。以下是关于用户和用户组管理的详细说明: 一、用户和用户组的概念 (一)用户(User) 用户是系统中…

【HTTP/2和HTTP/3的应用现状:看不见的革命】

HTTP/2和HTTP/3的应用现状:看不见的革命 实际上,HTTP/2和HTTP/3已经被众多著名网站广泛采用,只是这场革命对普通用户来说是"无形"的。让我们揭开这个技术变革的真相。 著名网站的HTTP/2和HTTP/3采用情况 #mermaid-svg-MtfrNDo5DG…

青少年编程与数学 02-018 C++数据结构与算法 16课题、贪心算法

青少年编程与数学 02-018 C数据结构与算法 16课题、贪心算法 一、贪心算法的基本概念定义组成部分 二、贪心算法的工作原理三、贪心算法的优点四、贪心算法的缺点五、贪心算法的应用实例(一)找零问题问题描述:贪心策略:示例代码&a…

UE5 Set actor Location和 Set World Location 和 Set Relative Location 的区别

在 Unreal Engine 的蓝图里,SetRelativeLocation、SetWorldLocation 和 SetActorLocation 三个节点虽然都能改变物体位置,但作用对象和坐标空间(Coordinate Space)不同: 1. SetActorLocation 作用对象:整个…

VINS-FUSION:跑通手机录制数据

文章目录 📚简介🚀手机录制数据🚀跑通数据🔧启动rviz🔧启动配置🔧播放rosbag🎯跑通结果 📚简介 利用智能手机的 摄像头IMU 采集数据,并在 VINS-Fusion(视觉惯…

Spring AI在大模型领域的趋势场景题深度解析

Spring AI在大模型领域的趋势场景题深度解析 在互联网大厂Java求职者的面试中,经常会被问到关于Spring AI在大模型领域的趋势场景的相关问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我们…

MySQL数据库全面详解:从基础到高级应用

一、数据存储概述 在计算机系统中,数据可以存储在多种形式中: 变量:程序中最基本的数据存储单元 元组:不可变的序列类型,常用于函数返回多个值 列表:有序可变集合,可存储不同类型元素 字典&…

Redux和MobX有什么区别

Redux 和 MobX 都是用于 React 应用的全局状态管理库,但它们在设计理念、使用方式和适用场景等方面存在明显的区别,下面为你详细分析: 1. 设计理念 Redux:基于 Flux 架构,遵循单向数据流和纯函数式编程的理念。状态是…

WPF实现类似Microsoft Visual Studio2022界面效果及动态生成界面技术

WPF实现类似VS2022界面效果及动态生成界面技术 一、实现类似VS2022界面效果 1. 主窗口布局与主题 <!-- MainWindow.xaml --> <Window x:Class"VsStyleApp.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x…

备份服务器,备份服务器数据有哪些方法可以实现?

服务器承载着企业核心业务数据与关键应用&#xff0c;数据丢失或业务中断可能带来灾难性后果。因此&#xff0c;构建一套科学、可靠的服务器数据备份体系至关重要。当前&#xff0c;服务器数据备份方法可根据技术架构、存储介质及恢复需求进行多维划分。根据不同场景、预算和技…

前端基础——5、CSS border属性与渐变色(详解与实战)

前端基础——5、CSS border属性与渐变色详解 CSS border属性与渐变色&#xff08;详解与实战&#xff09;一、border属性全面解析1. 基础三属性2. 复合写法3. 高级特性附加.border-style详解使用示例效果&#xff1a; CSS 渐变终极指南&#xff1a;线性渐变与径向渐变的深度解析…

企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet

企业出海已经成为目前最热门的趋势。然而不论你是做跨境电商&#xff0c;还是短剧出海&#xff0c;或处于最热门的AI 赛道&#xff0c;你都需要使用海外的云主机或GPU云服务。海外一线的云服务平台尽管覆盖区域广泛&#xff0c;但是往往费用成本较高。所以降本始终是企业出海关…

解决Spring Boot多模块自动配置失效问题

前言 在Spring Boot多模块项目中&#xff0c;模块间配置不生效是一个复杂但可解决的问题&#xff0c;尤其涉及自动配置类、依赖冲突、条件注解以及IDE配置。 一、问题背景与场景 1.1 场景描述 假设存在两个模块&#xff1a; 模块A&#xff1a;提供通用配置&#xff08;如跨…

WEBSTORM前端 —— 第2章:CSS —— 第4节:盒子模型

目录 1.画盒子 2.Pxcook软件 3.盒子模型——组成 4.盒子模型 ——边框线 5.盒子模型——内外边距 6.盒子模型——尺寸计算 7.清除默认样式 8.盒子模型——元素溢出 9.外边距问题 ①合并现象 ②塌陷问题 10.行内元素——内外边距问题 11.盒子模型——圆角 12.盒子…

Kafka和flume整合

需求1&#xff1a;利用flume监控某目录中新生成的文件&#xff0c;将监控到的变更数据发送给kafka&#xff0c;kafka将收到的数据打印到控制台&#xff1a; 在flume/conf下添加.conf文件&#xff0c; vi flume-kafka.conf # 定义 Agent 组件 a1.sourcesr1 a1.sinksk1 a1.c…

Idea 如何配合 grep console过滤并分析文件

这里写自定义目录标题 [grep console插件]()右击打开文件目录&#xff0c;选择 tail in console 同时可以添加自己的快捷键。 ![新的改变](https://i-blog.csdnimg.cn/direct/03423e27cf6c40c5abd2d53982547b61.png) 随后会在idea的菜单栏中出现tail菜单。这里&#xff0c;接下…