SAM conversions
- Single Abstract Methods
- lambdas 식을 제공
- Java에서 정의해야 함
- interface/abstract - Single Abstract Methods
- setter 정의
// Interface는 아래와 같습니다.
public interface OnClickListener {
void onClick (View var1);
}
// setOnClickListener을 아래와 같이 구현되어 있습니다.
public void setOnClickListener(View.OnClickListener 1) {
throw new RuntimeException("Stub!");
}
SAM은 언제 동작할까?
- setter와 추상 클래스 모두가 java 파일로 정의되어야 한다.
- 둘 중 하나라도 kotlin 파일로 정의하면 SAM은 동작하지 않는다.
class JavaSAMSample {
public static void setSAM(SAMInterface sam) {
}
interface SAMInterface {
void onClick(int position);
}
}
kotlin에서 Abstract Methods 구현하기
- Anonymous classes
JavaSAMSample.setSAM ( object : JavaSAMSample.SAMInterface {
override fun onClick(position : Int) {
}
override fun onClickSAM() {
}
})
'# 02 > 코틀린' 카테고리의 다른 글
[Kotlin] MVC 패턴 소개 1 (0) | 2019.07.15 |
---|---|
[Kotlin] Architecture (0) | 2019.07.15 |
[Kotlin] Generics (0) | 2019.07.15 |
[Kotlin] 유용한 kotiln Standard 라이브러리 (0) | 2019.07.12 |
[Kotlin] Higher-Order Functions (0) | 2019.07.12 |