Android Kotlin What are Generics

사용 언어: Kotlin 1.9.20
사용 버전: Kotlin Playground

안드로이드 코틀린 What are Generics를 알아보겠습니다.

Generic(제네릭)이란 무엇일까요?
Object(객체) 생성 당시에 무슨 Data Type(데이터 타입)인지는 모르겠고, instance(인스턴스)로 사용하면서 타입을 정하는 것을 말합니다.

출처:
https://developer.android.com/codelabs/basic-android-kotlin-compose-generics#1


위의 글에서는 Question(질문)을 예시로 Generic을 설명합니다.

질문에 따라 answer(응답)가 String, Boolean, Int로 다르다면, 질문에 해당하는 Class를 3개를 만들어야 합니다.






또한, Inheritance(상속)를 사용해서 만들려고 해도, answer 부분을 제외하고 super class를 만들게 될 텐데 Question이라는 함수에 answer가 없다는 것도 이상한 설계이고, answer가 상속되지 않는다면 상속을 써도 Class 3개를 만드는 것은 여전합니다.



여기서 중요하게 봐야 할 것은 answer가 String이든 Boolean이든 Int든 사용될 때 정해지면 된다는 것입니다.


Generic은 이렇게 정의합니다.

예시: class Question <T> ()






여기서 받은 generic data type을 properties의 타입으로 사용하려면 이렇게 합니다.






instance(인스턴스)로 만들 때에는 이렇게 합니다.





이러한 3개의 class를 generic을 사용해서 하나의 class로 만들어 봅시다.






짜잔.






여기서 T를 사람들이 자주 사용합니다. T는 Type의 첫머리인데요. 다른 대문자를 써도 됩니다. 따로 특별한 규칙은 없습니다.



자 이렇게 Instance를 만듭니다.






다른 사람이 만든 예시를 한 번 봅시다.

kotlin의 let인데요.

여기서 Generic은 T와 R이네요.

T.let은 블록에 T 타입을 넣고 return으로는 R 타입이 나오는군요.






아래 코드에서는 T가 Int이네요. a가 Int니까요. 그리고 R 또한 Int입니다. R로 2가 반환되니까요.









끝.


카테고리: Android

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)