본문 바로가기
모바일/Kotlin

[Kotlin] 코틀린 제너릭(Generic)

by drCode 2021. 4. 11.
728x90
반응형

안녕하세요 이번 포스팅은 Generic에 대해 다뤄보도록 하겠습니다.

 

여태껏 써왔던 함수 중에 Generic을 포함하고 있는 것이 있습니다.

 

바로 fun main. 메인함수인데요

 

인자로 오는 fun main(args: Array<String>) 에서 

 

<String> <<< 이것이 Generic입니다.

 

<> 안에는 여러가지가 올 수 있습니다.

 

흔히 사용하는 listOf에서도 제네릭이 있습니다.

 

listOf<Int> << Int형 리스트만 만들 수 있습니다.

 

listOf<String> << String형 리스트만 만들 수 있습니다.

 

listOf(1,2,3, "가", "나", "다") <<< Int형 뿐만 아니라 String형도 넣을 수 있는 리스트입니다.

 

fun main(args : Array<String>) {
    // 제너릭을 사용하자 않은 경우
    val list1 = listOf(1,2,3, "가")
    val b : String = list1[2].toString() // 형변환(타입 변환)

    // 제너릭을 사용하는 경우 -> 타입이 안전하다
    val list2 = listOf<String>("a", "b", "c")
    val c : String = list2[2] // String이라는 것을 보장 받는다

    // 강한 타입을 체크할 수 있다.
    val list3 = listOf(1,2,3,4, "가", "나", 3.0)
    val list4 = listOf<Int>(1,2,3) // 강한 타입 체크

    // 제너릭을 사용하지 않은 경우
    val list5 = listOf(1,2,3,"가") // -> Any
    // 부모 : Any
    // 자식 : String, Int, Float
}
728x90
반응형

댓글