OS만 업그레이드 되는 것 같은 안드로이드도 꾸준히 변화하고 있다.
안드로이드 스튜디오에서 listener를 달면
findViewById(R.id.plus).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { containerPlus.setVisibility(containerPlus.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); } });
이런 식으로 줄어서 표시되는데, 실제로는 람다를 적용하면 실제 코드를 저렇게 짤 수 있다.
방문해야 하는 곳은 https://github.com/evant/gradle-retrolambda 이다.
// ----- add buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.4' } } repositories { mavenCentral() } // ----- end apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' // ----- add android { compileSdkVersion 23 buildToolsVersion "23.0.2" //----add compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } //---end defaultConfig { applicationId "kr.susem99.testlambda" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' }
이렇게 추가를 해놓으면
이렇게 warning이 뜨고, 전구를 누르면 자동으로
Button btn = new Button(this); btn.setOnClickListener(view -> Log.i("MainActivity | onClick", "|" + "click" + "|"));
이렇게 바꿔준다.
지금 쓰는 프로젝트에 넣어도 괜찮을 것 같다.
java 8이 깔려 있어야 한다.