写点什么

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

用户头像
小阿杰
关注
发布于: 2021 年 08 月 04 日

前言

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

方法引用是什么?

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


  • 方法引用通过方法的名字来指向一个方法。

  • 方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

  • 方法引用使用一对冒号 :: 。

方法引用与 Lambda 表达式

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


方法引用的使用

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


@Data@ApiModelclass 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全栈架构师】维护者,欢迎关注阅读交流。


  好了,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。

发布于: 2021 年 08 月 04 日阅读数: 5
用户头像

小阿杰

关注

一个爱鼓捣的程序猿,JAVA开发者和爱好者。 2020.10.24 加入

一个爱鼓捣的程序猿,JAVA开发者和爱好者。 分享生活工作中所见、所闻、所学、所用,愿不断成长。公众号【Java全栈架构师】维护者。 自建微信小程序【软考真题解析】【实用在线工具箱】,欢迎阅读交流。

评论

发布
暂无评论
你会使用Java的方法引用吗?