您的位置 首页 java

Java8特性:Lambda表达式之方法引用篇

Java 自诞生已经有十几个年头了,目前也已经发布了第十三个大版本,其中Java8是常用的版本中最新的一个版本。而Java8最大的特性就是:Lambda表达式、函数式接口和Stream流。

本篇只介绍方法引用在Lambda表达式中的使用,至于别的方面不会提及。如果大家想了解Lambda表达式的基本概念,可以参考我的另一篇文章: 。如果大家想了解Lambda表达式的省略写法,可以参考我的另一篇文章: 。由于我对方法引用也是一知半解,所以下面只写几个使用方法引用的例子给大家参考。

好了,废话不多说,下面进入正题。

方法引用对于Java而言,仅仅可以使用在Lambda表达式中,而非如C++那样应用广泛。当然,方法引用使用的机会也不会很多。不过,了解一下也还是可以的。

在Java中方法引用有:普通方法引用、 静态方法 引用、 构造方法 引用以及数组引用四种。

普通方法引用

对于普通方法引用来说,分两种:对象::普通方法和类::普通方法

1. 对象::普通方法

为了演示普通方法引用,我需要先自定义一个函数式接口,定义的代码如下:

该段代码的目的是将一个 字符串 转换为整数数字。下面是使用对象::普通方法引用的实现方式。

2.类::普通方法

为了演示类::普通方法这种方法引用,我还是按照老规矩定义一个函数式接口,定义的函数式接口如下:

该段代码的作用是根据传入的两个整型参数将传入的字符串转换成另一个字符串。使用类::普通方法引用的表示方式为:

这里需要强调的是,当通过类来调用其普通方法的时候,其第一个参数一般会作为调用对象,而其余的参数则跟函数式接口的唯一抽象方法的参数保持一致即可。

静态方法引用

对于静态方法引用来说,其格式为:

类::静态方法

测试本例子的时候我依然使用上面定义过的Conver函数式接口。测试例子如下:

构造方法引用

构造方法引用的格式为:

类::new

为了测试构造方法引用,我还是需要声明一个函数式接口,声明后的函数式接口如下:

该函数式接口的用途是通过接收一个整型数字,然后初始化出一个指定容量的集合。测试例子如下:

数组引用

数组引用的格式为:

类[]::new

为了测试数组引用,我需要声明一个函数式接口,声明的函数式接口如下:

对于数组引用的函数式接口的测试例子如下:

至此方法引用已经介绍完毕。关于哪些场景该使用方法引用,我暂时也没有发现一个特定的规律 。所以,我只举几个例子给大家参考。当然,方法使用的机会也不多,所以大家酌情使用。会则锦上添花,不会也无伤大雅。

文章来源:智云一二三科技

文章标题:Java8特性:Lambda表达式之方法引用篇

文章地址:https://www.zhihuclub.com/190019.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图