关于双冒号的用法,请先看下面这个例子:
// 三种等价操作
for (Object n : list) { System.out.println(n); }
list.forEach(n -> System.out.println(n));
list.forEach(System.out::println);
双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名。一般是用作Lambda表达式。
例如
表达式:
person -> person.getName();
可以替换成
Person::getName
表达式
() -> new HashMap<>();
可以替换成
HashMap::new