【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 });
導入手順
Java8
build.gradle(Project)
buildscript{ dependencies{ ... classpath 'me.tatarka:gradle-retrolambda:2.5.0' } }
- build.gradle(Module)
apply plugin: 'me.tatarka.retrolambda' android{ ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }