티스토리 뷰
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.
이어보기 : http://thdev.tech/kotlin/androiddev/2017/10/07/Kotlin-SAM
Kotlin에는 SAM Conversions이 제공됩니다. Single Abstract Methods의 약자로 SAM이라고 합니다.
이름에서 알 수 있듯 SAM은 하나의 추상 메서드에 대해서 lambdas 식을 제공합니다. 단, Java에서 작성한 Interface 정의와 이를 활용하는 setOnClickListener
를 kotlin에서 부르는 경우에만 이에 해당합니다.
코틀린에서 유용해야 하는데 실제로는 kotlin에서 작성한 interface와 setOnClickListener
구현체가 있을 경우에는 SAM이 동작하지 않습니다.
이번 글에서는 Java에서 만들어진 interface 정의와 이를 활용하는 setOnClickListener
을 java와 Kotlin에서 구현할 때 다른 점을 알아보고, Anonymous class와 Higher-Order Functions 정의를 이번 글에서 살펴보겠습니다.
OnClickListener 샘플 코드
이번 글에서는 Android SDK에 포함되어 있는 OnClickListener
인터페이스와 setOnClickListener
의 내부 코드를 활용하기 위해서 원 코드를 옮겨보았습니다.
// Interface는 아래와 같습니다.
public interface OnClickListener {
void onClick(View var1);
}
// setOnClickListener을 아래와 같이 구현되어 있습니다.
public void setOnClickListener(View.OnClickListener l) {
throw new RuntimeException("Stub!");
}
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.
이어보기 : http://thdev.tech/kotlin/androiddev/2017/10/07/Kotlin-SAM
'Android Develop' 카테고리의 다른 글
[링크] Kotlin - 회사에서는 어떻게 도입하고? 학습해볼 수 있을까? (0) | 2018.01.02 |
---|---|
[링크] 정식 Android Studio 3.0과 까나리 3.1 배포 (0) | 2017.11.01 |
[링크] Kotlin Generics 정의 (0) | 2017.10.03 |
[링크] Kotlin Higher-Order Functions 사용방법 (0) | 2017.10.02 |
[링크] Android Architecture - MVC에서 MVP에서 MVVM으로 가는 길 (0) | 2017.08.10 |
댓글