我有這個代碼的問題:使用「這個」關鍵字與Retrolambda
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
//noinspection deprecation
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
getDefaultIntent();
}
});
我想這段代碼轉換使用lambda表達式是這樣的:
view.getViewTreeObserver().addOnGlobalLayoutListener(()->{
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
//noinspection deprecation
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
getDefaultIntent();
});
但它不會工作因爲現在this
沒有引用內部類。
你是對的。它不會工作。 「這個」總是指周圍的範圍,從來沒有lambda本身 – iagreen
@iagreen是他們的解決方法嗎? –