《Java工程师必读手册》——Java极客主义系列——最完美的Lambda表达式只有一行(2)

简介: 《Java工程师必读手册》——Java极客主义系列——最完美的Lambda表达式只有一行(2)

接上篇:

https://developer.aliyun.com/article/1226759?spm=a2c6h.12873581.technical-group.dArticle1226759.524d5a5cAMEBz4


三、 Lambda表达式方法引用

 

方法引用是一种“Lambda表达式用来直接访问类或实例的已存在的普通方法或构造方法”的方法,提供了一种“只引用而不执行方法”的方式。

 

Java8对方法引用的支持,只是Java编译器层面的支持,Java虚拟机仍然执行的是函数接口的实现。当Java编译器遇到方法引用时,Java编译器会自动推断出并将方法引用还原成函数接口实现。可以这样认为,方法引用只是Java8提供的语法糖。

 

方法引用仍然是一个Lambda表达式,其中方法引用的操作符是双冒号“::”。主要有以下几种方法引用语法:

 

 

 

1. 构造方法引用语法

 

当Lambda表达式参数与调用的构造方法参数一致时,可以采用构造方法引用语法。

 

表达式语法

 

image.png

 

原始代码

 

image.png

 

优化代码

 

image.png

 

2. 静态方法引用语法

 

当Lambda表达式参数与调用的静态方法参数一致时,可以采用静态方法引用语法。

 

表达式语法

 

image.png

 

原始代码

 

image.png

 

 

 

 

优化代码

 

image.png

 

3. 实例方法引用语法

 

当Lambda表达式参数与调用的对象实例方法参数一致时,可以采用实例方法引用语法。

 

表达式语法

 

image.png

 

原始代码

 

image.png

 

优化代码

 

image.png

 

注意

如果getLoginCount在本身所在的类中,可以把deviceService修改为this。

 

4. 参数类方法引用语法

 

当Lambda表达式只有一个参数且调用该参数的无参类方法时,可以采用参数类方法引用语法。

 

 

 

 

表达式语法

 

image.png

 

原始代码

 

image.png

 

优化代码

 

image.png

接下篇:https://developer.aliyun.com/article/1226757?groupCode=java

相关文章
|
6天前
|
Java
探索Java中的Lambda表达式
【9月更文挑战第28天】Lambda表达式,这一Java 8引入的轻量级语法结构,为函数式编程提供了强有力的支持。它简化了代码,提高了开发效率,并使得并行处理数据变得异常容易。本文将通过直观的例子和详细的解释,带领读者深入理解Lambda表达式的奥秘,从而在编程实践中更加灵活地运用它们。
|
7天前
|
Java API
探索Java中的Lambda表达式
【9月更文挑战第27天】Lambda表达式,作为Java 8的一大亮点,为我们的编程世界带来了一股清新之风。它以其简洁明了的语法和强大的功能,让我们在处理集合、线程等复杂操作时如鱼得水。本文将带你一探Lambda表达式的奥秘,让你领略到它的魅力所在。
18 6
|
4天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
5天前
|
Java API 开发者
探索Java中的Lambda表达式
【9月更文挑战第29天】Lambda表达式,在Java编程中,它不仅仅是一种语法糖,更是简化代码、提升效率的利器。本文将通过浅显易懂的语言和实际代码示例,带你走进Lambda的世界,了解其背后的原理和在日常开发中的应用,让你的代码更简洁、更高效。
|
7天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
设计模式 搜索推荐 Java
Java 极客技术 2019 年高考语文卷
Java 极客技术 2019 年高考语文卷
|
6天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
21 2
|
10天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
15天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
|
12天前
|
Java 开发者
Java中的多线程基础与应用
【9月更文挑战第22天】在Java的世界中,多线程是一块基石,它支撑着现代并发编程的大厦。本文将深入浅出地介绍Java中多线程的基本概念、创建方法以及常见的应用场景,帮助读者理解并掌握这一核心技术。
下一篇
无影云桌面