読者です 読者をやめる 読者になる 読者になる

【Android】Retrolambda

Retrolambdaを導入するとラムダ式が使えるようになり、短く書けます。

クリックのイベントを設定する場合

導入前

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //click
    }
});

導入後

button.setOnClickListener(view -> {
    //click
});

エラー例

ただ、短くは書けるのですが、以下のようにローカル変数と名前がかぶるとエラーになるため、 導入すべきかどうか少々悩んでしまいます。

View view;

button.setOnClickListener(view -> { //"view" is already defined in this scope
    //click
});

導入手順

  1. Java8

  2. build.gradle(Project)

buildscript{
    dependencies{
        ...
        classpath 'me.tatarka:gradle-retrolambda:2.5.0'
    }
}
  1. build.gradle(Module)
apply plugin: 'me.tatarka.retrolambda'

android{
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

参考