Lambda表达式和Java中的方法引用之间的区别?
Lambda表达式是一种匿名方法(无名称的方法),用于提供由 功能接口定义的方法的内联 实现 ,而 方法引用类似于引用 Lambda表达式的方法,该Lambda表达式引用了未执行的方法。箭头(->)运算符可用于在lambda表达式中连接参数和功能,而(::)运算符可将方法名称与方法引用中对象或类的名称分隔开。
Lambda表达式的语法
([comma seperated argument-list]) -> {body}方法引用的语法
<classname> :: <methodname>
示例
import java.util.*;
public class LambdaMethodReferenceTest {
public static void main(String args[]) {
List<String> myList = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND", "SCOTLAND");
System.out.println("------- Lambda Expression --------");
//使用Lambda函数调用system.out.println()
myList.stream().map(s -> s.toUpperCase())
.forEach(s -> System.out.println(s));
System.out.println("------- Method Reference ---------");
//使用方法引用来调用system.out.println()
myList.stream().map(String :: toUpperCase).sorted()
.forEach(System.out :: println);
}
}输出结果
------- Lambda Expression -------- INDIA AUSTRALIA ENGLAND NEWZEALAND SCOTLAND ------- Method Reference -------- AUSTRALIA ENGLAND INDIA NEWZEALAND SCOTLAND
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西