java零碎知识点
程序员文章站
2023-12-21 21:21:22
...
从lambda表达式到双冒号(::)操作
我们知道使用lambda表达式可以让代码非常简洁。举例,创建比较器,使用下面语法:
在这里插入代码片
Comparator c = (Computer c1, Computer c2) -> c1.getAge().compareTo(c2.getAge());
使用类型推断,可以简写为:
在这里插入代码片
Comparator c = (c1, c2) -> c1.getAge().compareTo(c2.getAge());
为了使上面代码更可读,我们使用下面语法:
在这里插入代码片
Comparator c = Comparator.comparing(Computer::getAge);
我们使用::操作简化lambda表达式调用特定方法,让我们的代码更有表现力。
了解原理
简单地说,当我们使用方法引用时,目标引用在::之前,方法名称在其值后,举例:
在这里插入代码片
Computer::getAge;
上面方法引用标识调用Computer类的getAge方法。也可以Function一起使用:
在这里插入代码片
Function<Computer, Integer> getAge = Computer::getAge;
Integer computerAge = getAge.apply(c1);