1. 程式人生 > >Java中Lambda表示式與方法引用和構造器引用

Java中Lambda表示式與方法引用和構造器引用

方法引用:

首先看 Timer t = new Timer(1000, System.out::println); 表示式 System.out::println 就是一個方法引用,等價於Lambda表示式 x -> System.out.println(x);

方法引用的三種情況:

(一)、object::instanceMethod (二)、Class::staticMethod 這兩種情況等價於提供方法引數的Lambda表示式,如上述 System.out::println 等價於 x -> System.out.println(x)
(三)、Class::instanceMethod
這種情況,第一個引數會成為方法的目標 但是都可譯為 呼叫某類的某方法。 當然,this和super也可以使用方法引用。 this::equels 等價於 x -> this.equels(x)

構造器引用:

構造器引用與方法引用很類似,只不過方法名是new,例如:Person::new 是構造器引用。 可以用陣列型別建立構造器引用,例如:int[]::new, 它有一個引數:陣列長度。等價於 x -> new int[x]