Java双冒号运算就是Java中的[方法引用]
[方法引用]的格式是: 类名::方法名
一般是用作Lambda表达式。
形如ClassName::methodName或者ObjectName::methodName的表达式,我们把它叫做方法引用(Method Reference)。
例如:
1.表达式:
person -> person.getName();
可以替换成:
Person::getName
2.表达式:
() -> new HashMap<>();
可以替换成:
HashMap::new
方法引用的种类:
方法引用有四种,分别是:
1)指向静态方法的引用
2)指向某个对象的实例方法的引用
3)指向某个类型的实例方法的引用
4)指向构造方法的引用
总结:
需要注意的是,方法引用是用来简化接口实现代码的,并且凡是能够用方法引用来简化的接口,都有这样的特征:有且只有一个待实现的方法。这种接口在Java中有个专门的名称:函数式接口。当你试图用方法引用代替一个非函数式接口时,会有这样的错误提示:xxx is not a functional interface。