关于双冒号的用法,请先看下面这个例子:

    1. // 三种等价操作
    2. for (Object n : list) { System.out.println(n); }
    3. list.forEach(n -> System.out.println(n));
    4. list.forEach(System.out::println);

    双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名。一般是用作Lambda表达式。
    例如
    表达式:

    1. person -> person.getName();

    可以替换成

    1. Person::getName

    表达式

    1. () -> new HashMap<>();

    可以替换成

    1. HashMap::new