본문 바로가기

Kotlin

Kotlin 익명 클래스

728x90

코틀린에서 익명 클래스를 만들 때에는 object 키워드를 이용하면 된다.

object 키워드는 싱글턴 패턴을 구현할때 사용 키워드기도 하지만,

익명 클래스를 만드는 용도로도 사용할 수 있다.

 

인터페이스에 함수가 하나만 있을 경우 SAM( Single Abract Method) 또는 함수형 인터페이스(Functional Interface)라고 부르며)

이경우 object를 생략하고 람다식으로 익명 클래스를 만들수 있다. (반드시 fun interface 키워드로 인터페이스를 정의해야한다 !!)

 

interface AA {
    fun aa()
    fun bb()
}

fun interface SAM{ //반드시 fun를 붙여줘야한다.
    fun sam(n : Int) : Boolean
}

fun main(){
    val aa = object : AA{
        override fun aa() {
            println("implement aa")
        }

        override fun bb() {
            println("implement bb")
        }
    }
    
    aa.aa() //implement aa
    aa.bb() //implemnt bb
    
    val sam  = SAM{
        it%2==0
    }
    
    println(sam.sam(10)) //true

}

 

https://kotlinlang.org/docs/fun-interfaces.html#functional-interfaces-vs-type-aliases

 

'Kotlin' 카테고리의 다른 글

시스템  (0) 2021.06.13
by lazy vs lateinit  (0) 2021.03.10
JVM 언어 의 공변  (0) 2021.02.22
코틀린 제네릭스  (0) 2021.02.19