[Kotlin] Kotlin FP (3) - SAM

yuseon Lim·2021년 4월 20일
0

Kotlin

목록 보기
11/11
post-thumbnail
post-custom-banner

SAM (Single Abstract Method)

하나의 추항 메소드만 가진 인터페이스를 functional interface, 혹은 Single Abstract Method (SAM) interface 라고 한다.

  • SAM은 몇 개의 non-abstract member를 가질 수 있지만,
  • abstract memeber는 하나만 가질 수 있다.
  • 예로는 View.OnClickListener, Runnable등의 인터페이스가 하나의 메소드만 가진다.

기본 형식은 이렇다.

fun interface KRunnable {
   fun invoke()
}

SAM conversion을 사용하지 않은 것과, 사용 한 것의 코드 차이를 보자.

// SAM conversion 쓰지 않음
val isEven = object : IntPredicate {
   override fun accept(i: Int): Boolean {
       return i % 2 == 0
   }
}

// SAM conversion + lambda
val isEven = IntPredicate { it % 2 == 0 }

SAM과 람다식으로 더 간단하게 사용이 가능하다😮

참고자료

profile
🔥https://devyuseon.github.io/ 로 이사중 입니다!!!!!🔥
post-custom-banner

0개의 댓글