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())
}