博客
关于我
Java8新特性——方法、构造器、数组引用详解
阅读量:371 次
发布时间:2019-03-05

本文共 1543 字,大约阅读时间需要 5 分钟。

Java 8中的方法引用、构造器引用与数组引用

在Java 8中,方法引用、构造器引用以及数组引用是函数式编程中非常重要的概念。它们能够简化代码编写,提高代码的可读性和 maintainability。本节将详细介绍这三种引用方式及其在实际开发中的应用。

一、方法引用

方法引用是将已有方法的引用传递给函数式接口的抽象方法的过程。通过方法引用,可以避免重复代码,提升代码的简洁性。方法引用主要分为以下三种形式:

1. 对象::实例方法名

这种形式用于引用对象的实例方法。例如,若有一个PrintStream对象ps1,调用其println方法的方式可以写为:

Consumer
con = (x) -> ps1.println(x);

同样地,另一个PrintStream对象ps1的方法引用可以写为:

Consumer
con1 = ps1::println;

2. 类::静态方法名

这种形式用于引用类的静态方法。例如,若使用Integer类的compare方法,可以写为:

Comparator
com = (x, y) -> Integer.compare(x, y);Comparator
com1 = Integer::compare;

3. 类::实例方法名

这种形式用于引用类的实例方法。例如,若有一个Employee对象emp,调用其getName方法的方式可以写为:

Supplier
sup = () -> emp.getName();String str = sup.get();

同样地,调用其getAge方法的方式可以写为:

Supplier
sup2 = emp::getAge;Integer num = sup2.get();

二、构造器引用

构造器引用是一种特殊的方法引用,用于创建对象。它可以通过两种方式实现:

1. 构造器引用方式

这种方式通过直接调用构造器来创建对象。例如,若使用默认构造器,可以写为:

Supplier
sup = () -> new Employee();

通过构造器引用方式,可以更简洁地创建对象。

2. 类::new 构造器引用

这种形式用于引用类的构造器。例如,若有一个Employee类,可以写为:

Supplier
sup2 = Employee::new;

使用这种方式,构造对象的方式更加简洁。

三、数组引用

数组引用是一种特殊的引用方式,用于创建数组对象。通过数组引用,可以更方便地操作数组元素。

1. 数组引用方式

这种方式用于直接创建数组对象。例如,若需要创建一个String数组,可以写为:

Function
fun = (x) -> new String[x];String[] str = fun.apply(10);

同样地,创建一个固定大小的数组也可以通过数组引用实现:

Function
fun2 = String[]::new;String[] str1 = fun2.apply(20);

通过以上方法引用,可以有效地创建和管理数组对象,提升代码的简洁性和 maintainability。

四、总结

方法引用、构造器引用与数组引用是Java 8中函数式编程的重要特性。通过掌握这些引用方式,开发人员可以更高效地编写代码,提升代码的可读性和 maintainability。无论是对现有方法的引用,还是对构造器和数组的操作,这些引用方式都为开发提供了强大的工具。

转载地址:http://nvig.baihongyu.com/

你可能感兴趣的文章
php一句话图片运行,【后端开发】php一句话图片木马怎么解析
查看>>
php上传文件找不到临时文件夹
查看>>
PHP下curl用法分析
查看>>
php与web服务器关系
查看>>
redis事务操作
查看>>
PHP中array_merge和array相加的区别分析
查看>>
PHP中dirname(__FILE__)的意思
查看>>
PHP中extract()函数的妙用
查看>>
PHP中implode()和explode()
查看>>
PHP中serialize和json序列化与反序列化的区别
查看>>
Redis事务处理
查看>>
php中使用ajax进行前后端json数据交互
查看>>
Redis事务和锁操作
查看>>
PHP中如何得到数组的长度
查看>>
php中引入文件几种方式的区别
查看>>
PHP中把stdClass Object转array的几个方法
查看>>
PHP中替换换行符
查看>>
PHP中有关正则表达式的函数集锦
查看>>
Redis 集群搭建详细指南
查看>>
php中的cookie用法
查看>>