티스토리 뷰
제너릭의 개념에 대해 알아봅니다.
제너릭은 타입을 체크하는 기능을 하는데, 좀 더 풀어서 설명하면, 다양한 타입의 객체를 다루는 메소드나 컬렉션, 클래스에서 컴파일 시 타입을 체크해주는 역할을 합니다.
개발자 스스로 제너릭을 만들어서 사용하는 경우 거의 없다고 보시면 됩니다. 제너릭을 어떻게 사용하는지 그 방법만 알아두시면 좋을 것 같습니다.
예문을 살펴보도록 합시다.
fun main(args: Array<String>){
val list1 = listOf(1, 2, 3.5, "가")
val b: String = list1[2].toString()
val list2 = listOf<String>("a", "b", "c")
val c: String = list2[2]
}
다음의 메인 함수를 살펴보면, list1에는 여러 타입이 들어가 있습니다. Int, Float, String이 모두 들어가 있기 때문에, 변수 b의 타입을 String으로 선언해도 '형 변환'이 필요합니다.
'형 변환'은 '캐스팅'이라고도 부르며, 타입을 다른 타입으로 바꿔주는 것을 말합니다. list1[2]를 toString( ) 메소드를 사용해 Int 타입에서 String 타입으로 바꾸었습니다.
list1의 타입은 Any 타입이 됩니다. Any 타입은 최상위 타입으로 모든 타입의 부모 격이라고 이해하시면 됩니다. 부모가 Any 타입이고, 자식은 Int, Float, String 타입이 되는 것입니다.
list2의 경우, 꺽쇠 < >를 사용해서 어떤 타입이 들어갈지 미리 지칭합니다. 이러한 경우를 제너릭이라고 합니다. 제너릭은 타입을 확인하는 기능을 하는데, 이와 같이 꺽쇠 안에 미리 들어갈 타입을 지정하는 것입니다.
따라서 불필요한 형 변환도 필요가 없습니다. 이렇게 제너릭을 사용하면, 어떤 인자를 가져오던 String 타입을 보장받으며, 형 변환도 필요 없기 때문에 타입이 '안전'하다고 칭합니다.
'Kotlin' 카테고리의 다른 글
데이터 클래스 Data Class (0) | 2021.07.08 |
---|---|
범위 함수 Scope Function (Apply, Also, Let, With, Run) (0) | 2021.07.08 |
코틀린 인터페이스 Kotlin Interface (0) | 2021.07.06 |
코틀린 상속 Kotlin Inheritance (0) | 2021.07.06 |
코틀린 접근제어자 Kotlin Access Modifier (0) | 2021.07.06 |
- Total
- Today
- Yesterday
- notifyDataSetChanged
- lazy init
- 애드뷰
- 탭레이아웃
- Bmi Calculator
- 안드로이드 어댑터
- RecyclerView
- bmi 계산기 만들기
- 대한민국 미제사건
- 리스트뷰
- 안드로이드 프로젝트
- 상대적 레이아웃
- addView
- 선형 레이아웃
- 2021년 사건사고
- 메소드 오버라이딩
- 미제사건
- 리사이클러뷰
- 2007년 사건사고
- android adapter
- 안드로이드 앱 만들기
- view binding
- ToDo List 앱 만들기
- 안드로이드 스튜디오 에러
- findViewById
- 2019년 사건사고
- 인텐트
- tabLayout
- 자바스크립트 배열
- 뷰 바인딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |