先构造一些数据,创建一个User类
java lambda 表达式中的双冒号的用法 ::
双冒号运算就是Java中的[方法引用],[方法引用]的格式是
类名::方法名
如下图所示
User是一个类, getAge是方法名,注意是方法名呀,后面没有括号()的。为什么不要括号,因为这样的是式子并不代表一定会调用这个方法。这种式子一般是用作Lambda表达式,Lambda有所谓懒加载嘛,不要括号就是说,看情况调用方法。
可以替换成,如下图
e -> e.getAge()
User -> User.getAge()
这种[方法引用]或者说[双冒号运算]对应的参数类型是Function<T,R> T表示传入类型,R表示返回类型。比如表达式User.getAge(); 传入参数是User,返回值是User.getAge(),那么方法引用User::getAge就对应着Function<User,Integer>类型。
如下图: