Java8方法引用笔记240128

Java8方法引用笔记240128

方法引用用双冒号::

当静态方法的参数个数和类型和拉姆达表达式提供的参数相同时, 可以用方法引用

方法引用的类型主要有以下四种:

  1. 静态方法引用:类名::staticMethodName

  2. 实例方法引用:instanceReference::instanceMethodName

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

  4. 类成员方法引用:类名::methodName

Java8方法引用示例

示例1:

import java.util.Arrays;
import java.util.List;public class 方法引用示例类 {public static void 被引用的方法(Object o) {System.out.print(o);}public static void main(String[] arguments) {List<Object> list = Arrays.asList("a","b","c",1,2,3,'a','b','c');list.stream() .forEach(System.out::println);  // 例一list.stream() .forEach(方法引用示例类::被引用的方法);  //例二 引用本类的静态方法}
}
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;public class 方法引用示例类 {public static void 类被引用的静态方法(Object o) {System.out.print(o);}public 方法引用示例类() {}public 方法引用示例类(Object o) {	System.out.print(o); 	}public void 实例被引用的方法(Object o) {	System.out.print(o);	}public static void main(String[] arguments) {方法引用示例类 方法引用示例实例 = new 方法引用示例类();List<Object> list = Arrays.asList("a","b","c",1,2,3,'a','b','c',1.23,4.56);list .forEach(System.out::println);  // 例一list .forEach(方法引用示例类::类被引用的静态方法);  //例二 引用本类的静态方法list .forEach(方法引用示例类::new);  //例三 引用本类的构造方法list .forEach(方法引用示例实例::实例被引用的方法);  //例四 引用本类的实例的方法Stream.of(1,2,3.14,"a","b",'c','d').forEach(System.out::println);   // 例一Stream.of(1,2,3.14,"a","b",'c','d').forEach(方法引用示例类::类被引用的静态方法); //例二 引用本类的静态方法Stream.of(1,2,3.14,"a","b",'c','d').forEach(方法引用示例类::new); //例三 引用本类的构造方法Stream.of(1,2,3.14,"a","b",'c','d').forEach(方法引用示例实例::实例被引用的方法);  //例四 引用本类的实例的方法}
}

引用System.out.println

List<String> names = Arrays.asList("John", "Jane", "Jack");
names.forEach(v->System.out.println(v)); //Lambda表达式
names.forEach(System.out::println); // 修改为方法引用形式

引用构造方法

List<String> names = Arrays.asList("John", "Jane", "Jack");
names.forEach(name -> new Person(name)); //Lambda表达式
names.forEach(Person :: new); // 修改为方法引用形式
  1. 引用数组的实例方法
Integer[] numbers = {1, 2, 3, 4, 5};
Arrays.sort(numbers, (a, b) -> Integer.compare(a, b)); // 使用Lambda表达式
Arrays.sort(numbers, Integer::compare); // 使用方法引用

注意,不是所有的方法都可以用方法引用来表示。例如,那些带有多个参数的方法、或者没有返回值的方法就不能用方法引用来表示。对于这些情况,你仍然需要使用Lambda表达式。

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

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

相关文章

服装行业ERP系统解决方案

我国的服装企业大多属于劳动密集型&#xff0c;主要有三种类型&#xff1a;自有品牌服装生产销售企业、接订单生产型企业及处于产业链下游的零售分销企业。在经营过程中&#xff0c;服装行业面临诸多挑战&#xff0c;如流行周期短、季节性强&#xff0c;市场变化快&#xff1b;…

空间数据分析入门POI与莫兰指数基础知识笔记

1. 空间分析与POI 1.1. 什么是POI POI是“Polnt of Information”的缩写&#xff0c;中文可以翻译为“信息点”。POI是地图上任何非地理意义的有意义的点&#xff0c;如商店、酒吧、加油站、医院、车站等。这些点通常包括名称、类别、经纬度和地址等基本信息。此外&#xff0…

实用Python定时点击Chrome网页按钮

# conda create -n python39 python3.9# 导入 selenium 和 time 库 from webdriver_manager.chrome import ChromeDriverManager # python -m pip install webdriver-manager # service ChromeService(executable_pathChromeDriverManager().install()) # driver webdriver.C…

Vue学习Element-ui

声明&#xff1a;本文来源于黑马程序员PDF讲义 Ajax 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是 互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2…

防抖,节流

前言 防抖是回城&#xff0c;节流是攻击 防抖和节流是前端开发中常用的函数优化&#xff0c;可以限制函数的执行频率&#xff0c;提升性能和用户体验。在日常开发中可以遇到一些需要对函数进行优化的场景&#xff0c;比如防止表单反复提交。 防抖、节流区别 防抖&#xff1a…

博云科技与中科可控全面合作,探索前沿金融科技新机遇

2024年1月26日&#xff0c;博云科技与中科可控在昆山高新区成功举办合作签约仪式。昆山市委常委、昆山高新区党工委书记孙道寻、中科可控董事长聂华、博云科技董事长花磊等领导出席了本次签约仪式。 中科可控将利用其在先进计算和智造领域的优势&#xff0c;为博云科技提供有关…

AI人工智能可以怎么应用?——GPT4v图文识别问答功能

沃卡 AI 已支持 AI识图问答TTS语音对话文档总结对话Dall E3 对话文生图国内大模型集合AI 绘画思维导图&#xff0c;而且功能还在不断更新优化&#xff0c;丰富好用&#xff01;一个系统满足您多个需求&#xff01; 大家可以通过收藏网页www.woka.chat 直接进行访问&#xff0c…

springboot-前后端分离——第一篇

本篇主要对前后端分离的一些基础知识进行总结&#xff0c;主要对HTTP请求协议、HTTP响应格式、Http协议解析等进行总结。重点在于简单了解前端如何向服务端发送请求&#xff0c;服务端如何接收请求并返回响应结果。 一、简单案例&#xff1a; 首先创建一个springboot项目&…

异步任务的一些思考

前言 XXL-Job部署教程 项目中&#xff0c;必然少不了数据的导入导出&#xff0c;针对数据的导入导出简单复盘一下。 为了不占用资源消耗时间&#xff0c;影响用户体验&#xff0c;大量数据的导入导出一般都是异步执行 导入的时候&#xff0c;如果数据量很大&#xff0c;一次…

八神庵:性格冲突与个性魅力在《拳皇》中的深度解读

在SNK的著名格斗游戏系列《The King Of Fighters》&#xff08;拳皇&#xff09;中&#xff0c;八神庵是一位极具代表性和复杂性的角色。他的性格特征不仅塑造了其独特的个人魅力&#xff0c;而且也成为了剧情发展的重要推动力。本文旨在探讨八神庵的性格特点及其在游戏内外所展…

Wireshark网络协议分析 - TCP协议

在我的博客阅读本文 文章目录 1. 基础2. 实战2.1. 用Go写一个简单的TCP服务器与客户端2.2. Wireshark抓包分析2.3. 限制数据包的大小——MSS与MTU2.4. 保证TCP的有序传输——Seq&#xff0c;Len与Ack2.5. TCP头标志位——URG&#xff0c;ACK&#xff0c;PSH&#xff0c;RST&…

cleanmymacX有必要买吗

CleanMyMac X是一款被广泛推荐的Mac电脑清理软件。以下是关于是否购买CleanMyMac X的几个关键点&#xff1a; 软件功能&#xff1a;CleanMyMac X具备多项功能&#xff0c;包括但不限于系统垃圾清理、缓存清理、恶意软件移除、隐私保护等。这些功能有助于保持Mac电脑的清洁和性能…

StarRocks -- 基础概念(数据模型及分区分桶)

1. 数据模型 StarRocks提供四种数据模型&#xff1a; Duplicate Key, Aggregate Key, Unique Key, Primary Key 1.1 Duplicate Key 适用场景&#xff1a; 分析原始数据&#xff0c;如原始日志和原始操作记录。可以使用多种方法查询数据&#xff0c;不受预聚合方法的限制。加…

第七篇:node中间件详解

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 &#x1f4d8; 引言&#xff1a; &#…

【Opcua】 客户端读写时,Opcua Server信息返回处追溯(1)

【Opcua】 客户端读写时&#xff0c;Opcua Server信息返回处追溯&#xff08;1&#xff09; 前言从客户端角度展开分析从服务端角度展开分析 前言 基于前文【Node-RED】node-red-contrib-opcua-server模块使用&#xff08;2&#xff09;介绍&#xff0c;我们已经了解到NodeRed…

【EI会议征稿通知】第四届信号图像处理与通信国际学术会议(ICSIPC 2024)

第四届信号图像处理与通信国际学术会议&#xff08;ICSIPC 2024&#xff09; 2024 4th International Conference on Signal Image Processing and Communication 第四届信号图像处理与通信国际学术会议&#xff08;ICSIPC2024&#xff09;将于2024年5月17日-19日在陕西西安再…

测试面试题(0101设计测试用例关键)

1. 测试计划 测试范围&#xff0c;本次改动的模块&#xff0c;新增了哪些功能测试策略&#xff0c;包含测试依据&#xff0c;测试准入标准&#xff0c;准出标准&#xff0c;测试重点及方法&#xff08;确认功能的优先级&#xff09;&#xff0c;测试工具的选择测试管理&#x…

MySQL进阶之存储过程(变量)

存储过程 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合&#xff0c;调用存储过程可以简化应用开发 人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&#xff0c;对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff0c;就…

用友NC Cloud及YonBIP PMCloudDriveProjectStateServlet JNDI注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

【伪类·HTML】

伪类 在 CSS 中&#xff0c;伪类是添加到选择器的关键字&#xff0c;给指定元素设置一些特殊状态&#xff0c;以 : 开头。 链接有以下四个状态。这四种状态也称之为超链接的伪类。 对于超链接的伪类&#xff0c;推荐的使用顺序是&#xff1a; :link - :visited - :hover - :a…