广告
返回顶部
首页 > 资讯 > 后端开发 > Python >你真的会使用Java的方法引用吗
  • 772
分享到

你真的会使用Java的方法引用吗

2024-04-02 19:04:59 772人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言方法引用是什么?方法引用与Lambda表达式方法引用的使用静态方法引用实例方法引用对象方法引用构建方法引用总结前言 Java 8由oracle公司于2014年3月18日发布

前言

Java 8由oracle公司于2014年3月18日发布,至今已过去数年之久。然而,直到今日仍有许多软件开发者对其相关特性不了解,这可能主要是Java基础教材更新缓慢的原因。Java 8 方法引用是Java 8的新特性,Java 8出来已经很久了,相信很多伙伴都已经在使用了,也有少部分不知道方法引用是怎么使用的,那么本文将带领大家一起初始Java的方法引用。

方法引用是什么?

  方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。

  • 方法引用通过方法的名字来指向一个方法。
  • 方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
  • 方法引用使用一对冒号 :: 。

方法引用与Lambda表达式

Java 8 中我们可以通过 :: 关键字来访问类的构造方法,对象方法,静态方法。

类型 方法引用 Lambda表达式
静态方法引用 类名::staticMethod (args) -> 类名.staticMethod(args)
实例方法引用 inst::instMethod (args) -> inst.instMethod(args)
对象方法引用 类名::instMethod (inst,args) -> 类名.instMethod(args)
构建方法引用 类名::new (args) -> new 类名(args)

方法引用的使用

为了更好的演示方法引用的使用方法,特引入了基础代码。


@Data
@apiModel
class Datainfo{
    private String name;

    private String info;

    private String welcome;

    public static DataInfo create( Supplier<DataInfo> supplier) {
        return supplier.get();
    }

    public static void getDataInfo( DataInfo dataInfo) {
        System.out.println("DataInfo : " + dataInfo.toString());
    }

    public void getWEBNameinfo( DataInfo dataInfo) {
        System.out.println(" WebName " + dataInfo.getName());
    }

    public void getWelcomeInfo() {
        System.out.println("welcome " + this.toString());
    }
}

静态方法引用

静态方法引用:它的语法是Class::static_method


dataInfoList.forEach(DataInfo::getDataInfo);

实例方法引用

特定对象的方法引用:它的语法是instance::method实例


dataInfoList.forEach( DataInfo.create( DataInfo::new )::getWebNameinfo );

对象方法引用

特定类的任意对象的方法引用:它的语法是Class::method


 dataInfoList.forEach(DataInfo::getWelcomeInfo);

构建方法引用

构造器引用:它的语法是Class::new。


DataInfo dataInfo = DataInfo.create(DataInfo::new);

总结

Java 8 中方法引用,使语言的构造更紧凑简洁,减少冗余代码,让程序员写出高效率、干净、简洁的代码。

到此这篇关于Java方法引用的文章就介绍到这了,更多相关Java方法引用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 你真的会使用Java的方法引用吗

本文链接: https://www.lsjlt.com/news/132001.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你真的会使用Java的方法引用吗
    目录前言方法引用是什么?方法引用与Lambda表达式方法引用的使用静态方法引用实例方法引用对象方法引用构建方法引用总结前言 Java 8由Oracle公司于2014年3月18日发布...
    99+
    2022-11-12
  • 你真的会用Mysql的explain吗
    目录引言explain基础1、id2、select_type3、table4、partitions5、typeexplain分析实战总结引言 数据库性能优化是每个后端程序猿...
    99+
    2022-11-13
  • Java中你真的会用Constructor构造器吗之看完本篇你就真的会了
    引言 相信大家对于java里的构造器应该都是有了解的,这次我们来了解一些构造器的不同使用方式,了解构造器的调用顺序,最后可以灵活的在各种情况下定义使用构造器,进一步优化我们的代码; ...
    99+
    2022-11-12
  • 探讨:你真的会用Android的Dialog吗?
    一个Bug前几日出现这样一个Bug是一个RuntimeException,详细信息是这样子的: 代码如下:java.lang.IllegalArgumentException:...
    99+
    2022-06-06
    dialog Android
  • Java 断言 assert 你真的会用嘛?
    Java assert 断言机制是 Java 5 中推出的新特性,它主要用于在程序运行时检查状态或假设的正确性,并在不正确时抛出 AssertionError 异常。使用 assert 断言可以使代码更加健壮、可靠,提高程序的可维护性和可读...
    99+
    2023-09-06
    java jvm 开发语言
  • 你真的了解Java的多线程方法吗
    目录Java 多线程方法详解startrunyieldjoinsleepInterruptdeamonPriority总结Java 多线程方法详解 start start方法&nbs...
    99+
    2022-11-13
  • Python重定向Windows框架:你真的会用吗?
    Python是一种高级编程语言,被广泛应用于各种领域,包括数据分析、人工智能、Web开发等等。在Windows操作系统下,Python提供了一种方便的方法来重定向标准输入、输出和错误流,即Windows框架。但是,很多人并没有充分利用这个...
    99+
    2023-09-29
    重定向 windows 框架
  • 说说字符串转 OffSetDateTime 你真的会用吗
    字符串转 OffSetDateTime 你真的会用 要创建OffsetDateTime ,需要日期 (日,月和年), 时间 (小时,分钟,秒和纳秒)和偏移量 (与UTC的差异)。 如...
    99+
    2022-11-12
  • 你真的了解PHP中的引用符号(&)吗
    引言 最近接手了五六年前的老项目,用的是CI2.0框架,在看框架源码的时候有个地方让我楞了一下,于是有了这篇文章。 字符&的最早历史可以追溯到公元1世纪,最早是拉丁语et ...
    99+
    2022-11-12
  • 你真的了解Java中NumPy的索引机制吗?
    Java中的NumPy是一种非常强大的数组处理工具,它可以帮助我们高效地处理大量的数据。在Java中,NumPy的索引机制是非常重要的一个概念,它可以帮助我们快速地定位和获取数组中的数据。本文将深入探讨Java中NumPy的索引机制,帮助读...
    99+
    2023-05-26
    numy numpy 索引
  • 你真的会 Java 存储吗?这些 LeetCode 编程算法将考验你的实力!
    Java 存储是 Java 编程的重要组成部分,对于 Java 开发人员来说,精通 Java 存储是非常必要的。在实际开发中,我们经常需要使用存储技术来存储和处理数据,而且 Java 提供了多种存储技术,例如文件存储、数据库存储等。但是,想...
    99+
    2023-09-01
    存储 leetcode 编程算法
  • 你真的会用ABAP, Java和JavaScript里的constructor么?
    如果constructor里调用了一个成员方法,这个方法被子类override了,当初始化一个子类实例时,父类的构造函数被的调用,此时父类构造函数的上下文里调用的成员方法,是父类的实现还是子类的实现?你能不用运行代码,就能准确说出这些语句会...
    99+
    2023-06-02
  • 你会使用 Go 索引 Spring 函数吗?
    Go 语言是一种高效的编程语言,广泛应用于云计算、网络编程、分布式系统等领域。而 Spring 是一个流行的 Java 开发框架,用于构建 Web 应用程序和企业级应用程序。在这篇文章中,我们将介绍如何使用 Go 索引 Spring 函数。...
    99+
    2023-10-11
    索引 spring 函数
  • 你真的了解Java实时重定向索引吗?
    Java实时重定向索引是一种高效的数据结构,其可以让我们在不停止应用程序的情况下,快速地更新和查询数据。然而,很多开发者并不了解这个特性,下面我们就来深入了解一下Java实时重定向索引。 什么是Java实时重定向索引? Java实时重定...
    99+
    2023-09-21
    实时 重定向 索引
  • 你真的了解Linux下API的用法吗?
    Linux下的API是指应用程序接口,是操作系统提供给应用程序的一组接口,它们允许应用程序与操作系统进行交互和通信。对于Linux开发者来说,熟练掌握Linux下API的用法是非常重要的,本文将为大家介绍Linux下API的用法及其实例演示...
    99+
    2023-09-30
    数组 linux api
  • 你真的需要 Java 教程来学习 Unix 索引吗?
    在学习Unix索引的过程中,许多人会选择参考Java教程。但是,你真的需要Java教程来学习Unix索引吗?在本文中,我们将探讨这个问题,并提供一些实用的Unix索引代码示例。 首先,让我们看一下Java教程和Unix索引之间的区别。Jav...
    99+
    2023-08-04
    教程 unix 索引
  • sql_slave_skip_counter,你真的用对了吗?
    写在前面:    最近一段时间都在做传统主从复制相关的测试,思考了很多上线主从复制架构后,可能会发生的问题,然后针对性设置了这些故障,再然后思考如何在保证业务可用,或者对业务冲击尽可能的小的前提下,进行故障...
    99+
    2022-10-18
  • 你真的会写java吗?希望你看完后也能成为合格的Java工程师
    技术点本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情。讲述方向由于一直从事移动互联网相关工作,java开发中...
    99+
    2023-06-02
  • Java接口的打包方式,你真的掌握了吗?
    在Java开发中,接口是一个非常重要的概念。它可以让我们定义一系列方法的规范,并且使得不同的类可以实现同一个接口,从而实现代码的复用和扩展性。但是,当我们需要将接口打包成一个独立的库时,你是否真正掌握了Java接口的打包方式呢?在这篇文章...
    99+
    2023-11-04
    接口 打包 面试
  • Java 数组编程算法,你真的掌握了吗?
    Java 数组是一种非常重要的数据结构,它可以在程序中存储和操作一系列相同类型的数据。然而,Java 数组编程算法并不是所有程序员都能够完全掌握的。在本文中,我们将探讨几个常见的 Java 数组编程算法,并提供一些示例代码来帮助你更好地理...
    99+
    2023-10-13
    数组 编程算法 学习笔记
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作