《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

相关文章
|
1月前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
2月前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
2月前
|
并行计算 Java 编译器
深入理解Java中的Lambda表达式
在Java 8中引入的Lambda表达式,不仅简化了代码编写,还提升了代码可读性。本文将带你探索Lambda表达式背后的逻辑与原理,通过实例展示如何高效利用这一特性优化你的程序。
|
1月前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
2月前
|
安全 Java API
Java中的Lambda表达式与Stream API的高效结合####
探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
28 0
|
2月前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
4月前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的探索
【9月更文挑战第24天】本文将深入浅出地介绍Java 8中的重要新特性——Lambda表达式和Stream API,通过实例解析其语法、用法及背后的设计哲学。我们将一探究竟,看看这些新特性如何让Java代码变得更加简洁、易读且富有表现力,同时提升程序的性能和开发效率。
|
5月前
|
Java API
Java 8新特性:Lambda表达式与Stream API的深度解析
【7月更文挑战第61天】本文将深入探讨Java 8中的两个重要特性:Lambda表达式和Stream API。我们将首先介绍Lambda表达式的基本概念和语法,然后详细解析Stream API的使用和优势。最后,我们将通过实例代码演示如何结合使用Lambda表达式和Stream API,以提高Java编程的效率和可读性。
|
5月前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
76 8
|
5月前
|
Java API
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的