1. 程式人生 > 其它 >Java8新特性之::(方法引用)

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 );