Yebali

Kotlin의 제너릭 본문

Kotlin

Kotlin의 제너릭

예발이 2021. 9. 22. 21:48

제너릭이란?

클래스나 함수에서 사용하는 자료형을 외부에서 지정할 수 있는 기능. 흔히 말하는 템플릿과 같은 기능.

일반적으로는 타입 파라미터의 이름은 Type의 T를 사용하는 것이 관례이다.

 

open class A {
    open fun shout() {
        println("A가 소리칩니다.")
    }
}

class B : A() {
     override fun shout() {
        println("B가 소리칩니다.")
    }
}

class C : A() {
     override fun shout() {
        println("C가 소리칩니다.")
    }
}

// 제너릭 클래스
class UsingGeneric<T:A> (var t:T) {
    fun doShouting() {
        t.shout()
    }
}

// 제너릭 함수
fun <T: A> doShouting(t: T) {
    t.shout()
}

fun main() {        
   UsingGeneric(A()).doShouting() // param을 보고 자동으로 A임을 추론한다.
   UsingGeneric(B()).doShouting()
   UsingGeneric(C()).doShouting()
   
   doShouting(B())
}

'Kotlin' 카테고리의 다른 글

Kotlin의 Data/Enum 클래스  (0) 2021.09.22
Kotlin의 nullable변수 처리  (0) 2021.09.22
Kotlin의 Static Method와 Function  (0) 2021.09.22
Kotlin의 스코프 함수  (0) 2021.09.22
Kotlin의 고차함수와 람다함수  (0) 2021.09.22