java双冒号是什么操作符

双冒号(::)运算符在Java8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。它提供了一种不执行方法的方法。为此,方法引用需要由兼容的函数接口组成的目标类型上下文。

一、定义与理解

1、定义

双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion。

2、理解

英文格式双冒号::,读:double colon,双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。它提供了一种执行方法的方法,为此,方法引用需要由兼容的函数式接口组成的目标类型上下文。

大致意思是,使用lambda表达式会创建匿名方法, 但有时候需要使用一个lambda表达式只调用一个已经存在的方法(不做其它), 所以这才有了方法引用!

二、使用

1、使用场景

双冒号(::)使用场景一般有如下6种:

java双冒号是什么操作符

2、案例详解

2.1 引用静态方法

java双冒号是什么操作符

2.2 引用特定对象实例方法

java双冒号是什么操作符

2.3 引用特定类型的任意对象的实例方法

java双冒号是什么操作符

注意:不要和引用静态方法搞混,认为为什么compareToIgnoreCase是非静态方法却可以使用类名去引用,这两者根本不是一回事,双冒号前的类含义也不同,就是两个应用方向

运行结果如下:

java双冒号是什么操作符

2.4 引用超类(父类)实例方法

java双冒号是什么操作符

2.5 引用类构造方法

一般我们需要声明接口,该接口作为对象的生成器,通过 类名::new 的方式来实例化对象,然后调用方法返回对象。

java双冒号是什么操作符

运行结果可以看下:

java双冒号是什么操作符

2.6 引用数组构造方法

我们可以借助jdk自带的java.util.function.Function类实现对数组构造函数的引用。​​​​​​​

当然,我们也可以使用@FunctionalInterface自定义函数式接口来实现:

java双冒号是什么操作符

来源:本文为CSDN博主「yangzhe19931117」的原创文章
原文链接:https://blog.csdn.net/yangzhe19931117/article/details/128246653

延伸阅读

常用语法

  • 静态方法引用语法:className::methodName 例如:Person::getAge
  • 对象的实例方法引用语法:instanceName::methodName 例如:System.out::println
  • 对象的超类方法引用语法:super::methodName
  • 类构造器引用语法:className::new 例如:ArrayList::new
  • 数组构造器引用语法:typename[]::new 例如:String[]::new

来源:本文为CSDN博主「心潮的滴滴」的原创文章
原文链接:https://blog.csdn.net/qq_42582773/article/details/127170070

文章标题:java双冒号是什么操作符,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37391

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月8日 上午10:48
下一篇 2023年2月8日 上午11:37

相关推荐

  • UniApp音视频通话中的实时数据加密方法

    音视频通话的实时数据加密至关重要,确保通信过程中隐私不被泄露。1、使用强密码学算法,譬如应用非对称加密技术保证密钥安全交换、对称加密用于音视频数据加密;2、实施全程加密,包含信令数据和媒体流;3、维护密钥安全,如周期性更新密钥防御重放攻击;4、采用安全的传输协议,例如利用TLS/DTLS保护隧道;5…

    2023年12月25日
    39100
  • devops研发管理平台

    DevOps研发管理平台强调开发与运维的协同,通过制定明确的流程与持续集成(CI)和持续部署(CD)来优化软件交付。该平台的特性包括自动化操作、提高研发效率、保障软件质量与安全性、便捷的团队协作和反馈机制1、2、3、4、5。自动化操作机制能显著减少人为错误,是这类平台的显著优势。 自动化操作减少了复…

    2024年1月10日
    25900
  • 项目管理用什么工具

    项目管理用的工具有:一、PingCode;二、Worktile;三、Wrike;四、Smartsheet;五、Clarizen;六、Backlog。PingCode 是国内2021年软件项目管理榜单排名名列前茅的项目管理软件(36氪发布),在软件项目管理方面它有着非常多其他软件都不具备的优势。 一、…

    2023年4月27日
    36700
  • 如何做项目经理

    做项目经理的条件:一、正规教育和培训;二、基本技能;三、宝贵的经验。正规教育和培训是指,教育学位或专业认证,一个人可以通过从正式的本科或研究生教育课程中获得学位来进入项目管理,也可以通过获取专业机构为项目管理提供专门的认证成为项目经理。 一、正规教育和培训 人们选择成为项目经理是因为他们想做项目经理…

    2023年2月24日
    47500
  • okrs是什么

    okrs是一种目标体系,其核心意思就是“目标和关键成果”,它能够有效分割目标管理和评价体系,使企业更好的聚焦战略目标,从而几种配置各项资源。okrs目前被广泛应用于各种以项目为主要经营单位的企业,例如IT、风险投资、游戏、创意型企业。 %ignore_a_1% 1.okrs的意思 okrs是Obje…

    2022年11月16日
    2.0K00
  • 土建项目如何管理质量问题

    土建项目要管理质量问题,关键步骤包括制定详细的工程质量标准、实施严格的材料控制与验收流程、采用先进的施工技术与方法、定期施工检查与质量评估、构建全员质量责任制以及进行质量问题的追踪与整改。这些措施协同工作、相互支持。以制定详细的工程质量标准为例,它是确保工程质量得以满足技术要求和客户期望的基石。详尽…

    2024年4月10日
    5900
  • 如何做好项目反馈管理制度

    项目反馈管理制度的核心要素包括建立明确的反馈流程、确保信息的透明共享、设定反馈收集的时间点、培养开放的反馈文化和运用技术工具优化反馈管理。透明共享是基础,它确保了项目组内部及相关干系人能够获得项目进展信息和反馈结果。这不仅能够增强信任,还能鼓励参与者提供更为真诚和有用的反馈。系统的信息共享机制,如定…

    2024年4月11日
    5300
  • oa办公系统有哪些好用的

    OA办公系统的高频优点包括1、提高工作效率、2、促进信息共享、3、简化工作流程、4、降低运营成本。提高工作效率,即通过这些系统提供的自动化工具和集成服务,使得日常的办公任务快速、便捷、且错误率更低。在OA系统的广泛应用中,这一点被视为显著的助力。 一、提升工作效能 使用OA办公系统,工作人员可以快速…

    2024年1月11日
    16600
  • 为什么高级编程语言易于编程但效率低,低级编程语言编程复杂但效率高

    原因:低级语言接近底层的编程,没有编译解析等过程,所以执行效率高,响应速度快;但由于学习和编程以及调试难度较高,故编程比较费时费力,项目周期一般较长。而高级语言虽比较依赖编译解析,但可读性和开发效率更高,高级语言的执行依赖于运行环境。 首先,要知道高级语言和低级语言的区别就应该知道何为高级何为低级。…

    2023年2月23日
    1.4K00
  • 项目管理基本工具有哪些

    项目管理基本工具有:一、PingCode;二、Worktile;三、Asana;四、Trello;五、Wrike。PingCode是国内软件研发项目管理软件。功能以及解决的问题有:能够支持看板、敏捷等多种项目的管理;管理团队目标,监控单/多项目的进度、管理计划分配资源。 一、PingCode Pin…

    2023年4月30日
    93800

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部