java8中双冒号的使用

http://blog.youkuaiyun.com/lsmsrc/article/details/41747159
Java 中,英文格式双冒号 `::` 读为 double colon,在 JDK 1.8 中它被用作方法引用(Method Reference),是 lambda 表达式的一种简写,也是与 lambda 表达式相关的一个重要特性 [^1][^2][^3][^4]。 方法引用是一种更简洁和更易读的方式来表示一个函数式接口的实现,它提供了一种执行方法的方法,需要由兼容的函数式接口组成的目标型上下文 [^2][^3]。使用 lambda 表达式会创建匿名函数,而当只需要使用一个 lambda 表达式来调用一个已经存在的方法时,就可以使用方法引用,也就是双冒号 `::` 这种形式 [^4]。 例如,表达式 `person -> person.getName();` 可以替换成 `Person::getName`;表达式 `() -> new HashMap<>();` 可以替换成 `HashMap::new` [^1]。 ### 代码示例 ```java import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } } public class Main { public static void main(String[] args) { // Lambda 表达式 Supplier<List<String>> lambdaSupplier = () -> new ArrayList<>(); // 使用方法引用的等价写法 Supplier<List<String>> methodRefSupplier = ArrayList::new; List<Person> people = List.of(new Person("Alice"), new Person("Bob")); // Lambda 表达式遍历 people.forEach(person -> System.out.println(person.getName())); // 使用方法引用的等价写法 people.forEach(Person::getName); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值