Bootstrap

Java 8 :: 方法引用操作符的介绍

0、“::” 方法引用操作符的介绍
1、首先我们看两段代码

//flatMap是RxJava当中的操作符
flatMap(Observable::fromIterable)
//简单的点击事件
myButton.setOnClickListener(this::logError);
public void logError(View v) {
  Log.d("debug", "Button clicked"); 
}

2、我们来还原一下代码

flatMap(new Function<List<Contributor>, ObservableSource<?>>() {
                    @Override
                    public ObservableSource<?> apply(@NonNull List<Contributor> contributors) throws Exception {
                        return Observable.fromIterable(contributors);
                    }
                })
myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Log.d("debug", "Button clicked");
    }
});
public void logError(View v) {
  Log.d("debug", "Button clicked"); 
}

3、对比一下,我们发现使用”::”的代码简洁很多;”::”是Java 8 中新加入的方法引用操作符
4、”::”官方描述

这里写图片描述

;