woong's
Android Lambda 사용하기 본문
Android Lambda 사용하기
안녕하세요. 책을 읽다 람다 표현식에 대해서 잠깐 접해본것을 정리해보려 합니다.
자바 8 에서 지원하는 람다를 android 에서 사용하려하니 바로는 사용이 안되더라구요.. 아쉽네요.
나중에는 바로 사용할수 있겠죠!!!
람다를 사용하기위해서 준비과정이 필요 합니다.
1. 사용 준비
1. project build.gradle
classpath retrolambda 를 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' classpath 'me.tatarka:gradle-retrolambda:2.5.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } | cs |
2. app build.gradle
apply plugin retrolambda 를 추가
compileOptions 를 추가합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.android.handstudio.ramdasample" minSdkVersion 18 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:23.0.0' } | cs |
위와 같이 준비를 하면 람다를 사용할 준비가 완료 되었습니다.
2. 사용방법
1. 람다 사용전
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * 기존 버튼 클릭 리스너 */ private View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { sayHello(); } }; | cs |
2. 람다 사용후
1 2 3 | /** * 람다 버튼 클릭 리스너 */ private View.OnClickListener mOnClickListener = (v) -> { sayHello(); }; | cs |
결론
장점
익명 함수를 -> 로 변경해서 사용할수 있습니다.
코드도 간결하게 작성할수 있고 , 가독성도 지금은 잘 모르겠지만,
계속 사용하다보면 좋아질것 같습니다.
코딩을 하면 코드를 작성하는 시간보다 , 코드를 읽는시간이 훨씬 많이 들어간다고 합니다.
단점
인터페이스 함수를 단 1개만 가능하다.
이점은 아쉽네요.. 리스너나 다른 익명함수를 사용하다보면 여러개 쓰기 마련인데;;
'Develop > Android' 카테고리의 다른 글
Android Java 파일 경로 / 포함하기 (0) | 2016.02.14 |
---|---|
Android VideoView error 처리하기 (0) | 2016.02.14 |
Android Groovy 환경설정 하기 (0) | 2016.02.14 |
android PhoneStateListener 여러번 호출되는것 방지하기 (0) | 2016.02.14 |
android startActivity 재사용하기 (0) | 2016.02.14 |
Comments