Java8方法引用及构造方法引用原理实例解析

yizhihongxing

Java8方法引用及构造方法引用原理实例解析

Java 8中引入了方法引用(Method Reference)的语法,可以根据Lambda表达式,快速地指向一个已有方法,从而简化编程。

方法引用使用“::”符号来定位某个方法,并用Lambda表达式将方法和函数式接口绑定在一起,从而由Java编译器自动完成Lambda表达式的类型推断。

方法引用的语法格式为:

方法引用的简写格式:“方法所属的类或对象::方法名”

类静态方法引用:"类名::静态方法名"
对象实例方法引用:"对象实例::实例方法名"

构造方法引用的语法格式为:

构造方法引用的简写格式:“类名::new”

方法引用示例

import java.util.Arrays;
import java.util.List;

public class MethodReferenceDemo {
    public static void main(String[] args) {
        List<String> cities = Arrays.asList("beijing", "shanghai", "shenzhen", "guangzhou");
        cities.sort(String::compareToIgnoreCase);
        cities.forEach(System.out::println);
    }
}

在上面的示例代码中,我们使用了方法引用的语法,将String的compareToIgnoreCase方法和Comparator接口中的compare方法进行了绑定。由于List的sort方法需要传入一个Comparator对象,而这里我们使用了方法引用,相当于传入了一个Comparator对象的实现,完成了字符串的排序。

构造方法引用示例

import java.util.function.Supplier;

public class ConstructorReferenceDemo {
    public static void main(String[] args) {
        Supplier<String> supplier = String::new;
        String helloWorld = supplier.get();
        System.out.println(helloWorld);
    }
}

在上面的示例代码中,我们使用了构造方法引用的语法,将String类的无参构造方法和Supplier接口进行了绑定,并使用get方法创建了一个字符串对象。实际上,这里的代码可以使用Lambda表达式替代,如下所示:

Supplier<String> supplier = () -> new String();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java8方法引用及构造方法引用原理实例解析 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • jsp+Servlet编程实现验证码的方法

    下面我来详细讲解“jsp+Servlet编程实现验证码的方法”的完整攻略。 什么是验证码? 验证码(CAPTCHA)是指计算机应用程序为区分用户是真实用户还是计算机程序而推出的一种测试。常见的验证码类型包括数字、字母、滑块等形式,用户需要正确地填写系统生成的图形码信息才能进行下一步操作。 实现验证码的原理 验证码的实现原理是利用了Web开发中的Session…

    Java 2023年6月15日
    00
  • JavaSpringBoot报错“NotAllowedException”的原因和处理方法

    原因 “NotAllowedException” 错误通常是以下原因引起的: 请求方法不允许:如果您的请求方法不允许,则可能会出现此错误。在这种情况下,需要检查您的请求方法并确保它们正确。 请求路径不允许:如果您的请求路径不允许,则可能会出现此错误。在这种情况下,需要检查您的请求路径并确保它们正确。 请求头不允许:如果您的请求头不允许,则可能会出现此错误。在…

    Java 2023年5月4日
    00
  • 浅析Java中对象的创建与对象的数据类型转换

    这里是“浅析Java中对象的创建与对象的数据类型转换”的攻略。 1. 对象的创建 Java中的对象可以由new关键字创建,一个对象的创建需要以下步骤: 分配对象的内存空间:在堆内存中为新对象分配一片连续的空间,这个空间的大小由对象的数据类型和属性决定。 执行构造函数:在分配好内存空间之后,JVM会执行对象的构造函数,初始化对象的属性值等。 将对象的引用返回给…

    Java 2023年5月26日
    00
  • 浅谈Java中Unicode的编码和实现

    浅谈Java中Unicode的编码和实现 什么是Unicode? Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,它对世界上大部分的文字系统进行了编码,以便实现文字在计算机内的处理。Unicode利用一组标准编码,为世界上所有的文字和符号都指定了一个唯一的代码位,用于在计算机中存储、交换和处理。在Java中,char类型采用的编码是…

    Java 2023年5月20日
    00
  • Spring MVC项目中的异常处理详解

    下面是关于“Spring MVC项目中的异常处理详解”的完整攻略,包含两个示例说明。 Spring MVC项目中的异常处理详解 在Spring MVC项目中,异常处理是非常重要的。本文将介绍如何在Spring MVC项目中处理异常,并提供两个示例说明。 步骤一:定义异常类 首先,我们需要定义一个异常类来处理异常。可以通过继承Exception类或Runtim…

    Java 2023年5月17日
    00
  • Springboot2.0配置JPA多数据源连接两个mysql数据库方式

    下面是关于Springboot2.0配置JPA多数据源连接两个mysql数据库的完整攻略: 1. 配置application.properties文件 在application.properties文件中配置两个数据源的连接信息,如下所示: #第一个数据源 spring.datasource.test1.jdbc-url=jdbc:mysql://local…

    Java 2023年5月20日
    00
  • java 如何读取远程主机文件

    下面是针对”java 如何读取远程主机文件”的完整攻略,包含两条示例。 1. 使用Java的URLConnection读取远程文件 通过Java语言的URL和URLConnection类,我们可以方便地读取远程文件。具体步骤如下: 1.1 建立URL对象 使用URL类的构造方法,传入需要读取的远程文件路径(包括协议、主机、端口、文件路径等信息),新建一个UR…

    Java 2023年5月19日
    00
  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    下面是“JDBC中使用Java8的日期LocalDate和LocalDateTime操作MySQL、PostgreSQL”的完整攻略。 1. 前置条件 在进行Java8日期类型和JDBC的整合之前,需要保证以下条件: 本地系统已经正确安装MySQL或PostgreSQL数据库,在本次攻略中以MySQL为例。 本地系统已经正确配置好JDBC,以确保Java程序…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部