retrolambda
公式?: https://github.com/evant/gradle-retrolambda
参考: http://qiita.com/kamimoo/items/f4b3ef22ca0327e88e32
最近色んなデモアプリのソースとかを見ていると一部でJava8での記法みたいなので作られてる物もあるけど、AndroidってJava8サポートしてないよねっていう事で調べたらretrolambdaっていうのを使う事で出来るっぽい
build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:1.2.3"
// 追加
classpath "me.tatarka:gradle-retrolambda:3.1.0"
}
}
allprojects {
repositories {
jcenter()
}
}
app/build.gradle
apply plugin: "com.android.application"
apply plugin: "me.tatarka.retrolambda"
android {
compileSdkVersion 17
buildToolsVersion "22.0.1"
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
retrolambda {
// SEE ALSO https://github.com/evant/gradle-retrolambda#configuration
// jdkを設定するかENV["JAVA8_HOME"]を設定しておく必要あるっぽい。詳しくは上記URL参考
// When running gradle with java 6 or 7, you must set the path to jdk8, either with property retrolambda.jdk or environment variable JAVA8_HOME
}
設定は終わり
MainActivity.java
package sample.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
Button btn = new Button(this);
btn.setText("click");
btn.setOnClickListener(view -> {
showToast("click!!");
});
setContentView(btn);
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
っていう感じでJava8の記法を使ってJavaを記述出来る模様
どうしてもJava8でやりたいんやっていう人向けでそうでもないなら別に良いんじゃないっすかね