Java8新特性之::(方法引用)

1、::(双冒号,方法引用)

双冒号 :: 为引用运算符,而它所在的表达式被称为方法引用。如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒号来引用该方法作为Lambda的替代者。也就是说,方法引用实际上是返回一个方法,而不是该方法的执行结果。

方法引用通过方法的名字来指向一个方法。

 

2、方法引用语法

构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:

final Car car = Car.create( Car::new );
final List< Car > cars = Arrays.asList( car );

 

静态方法引用:它的语法是Class::static_method,实例如下:

cars.forEach( Car::collide );

 

特定类的任意对象的方法引用:它的语法是Class::method实例如下:

cars.forEach( Car::repair );

 

特定对象的方法引用:它的语法是instance::method实例如下:

final Car police = Car.create( Car::new );
cars.forEach( police::follow ); 

 

posted @ 2021-12-05 20:03  wenxuehai  阅读(642)  评论(0编辑  收藏  举报
//右下角添加目录