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

相关推荐

  • 抖音极速版和抖音有什么区别

    抖音极速版与抖音的区别主要体现在以下五个方面:1、功能区别;2、使用人群;3、内容推荐;4、运行环境;5、互动性。抖音极速版更注重基础功能,目标用户群体更广,而抖音则具有更丰富的功能和更个性化的内容推荐。 一、功能区别 抖音极速版更注重核心功能,如观看、发布视频等,去除了抖音中的一些较为复杂的功能,…

    2023年6月1日
    4.6K00
  • 经营与管理的区别

    经营与管理的区别在目标和职责、时间维度、范围和重点、决策和执行、关注对象等方面。详细介绍:1、目标和职责,经营的主要目标是实现组织的日常运作,确保业务的顺利进行,而管理的主要目标是确保组织的长期发展和目标的实现,经营的职责包括生产、销售、供应链管理、客户服务等方面,旨在实现产品或服务的交付和满足客户需求,而管理的职责包括制定战略、规划、组织、决策等等。

    2023年10月19日
    8400
  • treemap和hashmap区别

    TreeMap和HashMap的区别主要体现在以下五个方面:1.内部实现不同;2.元素排序不同;3.线程安全性不同;4.性能不同;5.键值对的存储限制不同。总的来说,TreeMap和HashMap各有优点,其使用应根据具体需求来决定。 1.内部实现不同 HashMap基于哈希表实现,它通过使用键的h…

    2023年5月18日
    2.9K00
  • 测试用例如何评审

    测试用例通过以下三种方法评审:1、完全评审;2、有选择性的评审;3、指标评审法。完全评审是指对整个项目中的所有测试用例进行评审。这种评审方式的优点是可以对所有的用例都进行评审,进而完善测试用例质量;但同样缺点也很明显,完全评审需要更多的时间和精力。

    2022年12月27日
    33200
  • 企业文档管理项目有哪些

    企业文档管理项目包括:一、项目背景;二、项目目标;三、项目实施;四、项目收益;五、项目风险。企业文档管理项目的背景是随着企业的不断发展,文档量不断增加,文档种类也越来越多,企业文档管理面临着诸多挑战。 一、项目背景 企业文档管理项目的背景是随着企业的不断发展,文档量不断增加,文档种类也越来越多,企业…

    2023年4月16日
    3500
  • 为什么说数据是训练AI的关键

    在人工智能(AI)的发展中,数据作为训练AI的关键资源,发挥着至关重要的作用。数据质量、数据多样性、数据标注的准确性、数据量和符合伦理标准的数据是决定AI性能的五个核心观点。良好的数据能够确保AI系统学习到准确、广泛和实用的知识和技能,而丰富、注释得当、多源和伦理的数据进一步增强了AI模型的泛化能力…

    2023年11月24日
    1600
  • 电容屏和电阻屏的区别主要有哪些方面

    电容屏与电阻屏的区别涉及:1、工作原理;2、触摸方式;3、灵敏度;4、透明度和显示效果;5、耐用性和抗干扰能力;6、成本;7、主要应用领域。这两种触摸屏技术虽然都被广泛用于各种电子设备中,但它们在工作机制、性能和应用上存在明显差异。 1、工作原理 电容屏:通过人体的触摸改变屏幕表面的电容值,从而检测…

    2023年7月30日
    14100
  • sql语句where条件里怎么写去重

    可以用以下方法:一、使用DISTINCT关键字;二、使用GROUP BY语句;三、使用HAVING语句;四、使用子查询。DISTINCT关键字可以去掉SELECT语句中重复的行。GROUP BY语句可以将结果按照指定的列分组,然后对每个组进行聚合操作。 一、使用DISTINCT关键字 DISTINC…

    2023年5月31日
    33200
  • 用什么软件管理需求

    常见的管理需求软件有:1. JIRA;2. Trello;3. Asana;4. Axure RP;5. Confluence。JIRA 是 Atlassian 公司推出的一个高度可定制的问题追踪和项目管理工具。JIRA 可以轻松地追踪项目工作流程,包括需求管理、缺陷跟踪、任务分配等。JIRA 支持…

    2023年2月28日
    14700
  • 人力资源数字化转型有哪些好处

    人力资源数字化转型对组织的人事管理有着显著的好处,包括1、提高效率与生产力;2、数据驱动的决策支持;3、优化员工体验;4、强化合规与安全;5、支持灵活和远程工作。例如,在提高效率与生产力方面,数字化转型可通过自动化流程减少手动任务,使人力资源专业人员更专注于战略性工作。 1、提高效率与生产力 2、数…

    2023年8月21日
    15300

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部