본문 바로가기

# 02/코틀린

[Kotlin] SAM Class

반응형

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