Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- consumer
- K8s
- kafka
- spring kafka
- offsetdatetime
- centos7
- QueryDSL
- Streams
- PAGING
- mysql
- Kotlin
- entity graph
- Entity
- JPA
- transactionaleventlistener
- mirror maker2
- CI
- bean
- ECS
- Kubernetes
- git
- spring
- topic생성
- API
- CodePipeline
- producer
- AWS
- cd
- Spring JPA
- Spring Data JPA
Archives
- Today
- Total
Yebali
Kotlin의 제너릭 본문
제너릭이란?
클래스나 함수에서 사용하는 자료형을 외부에서 지정할 수 있는 기능. 흔히 말하는 템플릿과 같은 기능.
일반적으로는 타입 파라미터의 이름은 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 |