Kotlin, 제너릭

Yebali·2021년 8월 16일
0

약간의_Kotlin

목록 보기
11/19

제너릭이란?

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

일반적으로는 타입 파라미터의 이름은 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())
}

장점

제너릭을 사용하면 타입 케스팅없이 실행되기 때문에 성능 관점에서 유리하다.

profile
머리에 다 안들어가서 글로 적는 중

0개의 댓글