kotlin 문법: "제네릭(Generic)"

SHY(code poet)·2024년 2월 28일

✨Kotlin에 관하여✨ 

목록 보기
26/36

⑤ 제네릭(Generic):
: 입력되는 값의 타입을 자유롭게 사용하기 위한 / 타입을 특정해서 안전성을 유지하기 위한 설계 도구
※제네릭(Generic)
리스트 컬렉션을 생성하면서 < > 괄호를 사용했는데, 이 괄호의 정식 명칭은 제네릭.
제네릭은 컬렉션이 사용하는 값의 타입을 지정하기 위한 도구이다.
Kotlin에서 컬렉션은 제네릭을 사용하지 않으면 사용할 수 없다.
단, 값으로 초기화할 때는 입력되는 값으로 타입을 추론할 수 있기 때문에 제네릭을 쓰지 않아도 생성할 수 있다. (참고: 리스트 생성, 값추가 )

  • 다음은 자주 사용되는 MutableList 클래스의 원본 코드를 이해하기 쉽게 변형한 코드이다.

public interface MutableList {
var list: Array
// ...
}

  • 클래스명 옆에 라고 되어 있는 부분에 String과 같은 특정 타입이 지정되면 클래스 내부에 선언된 모든 E에 String이 타입으로 지정됩니다.
    결과적으로 var list: Array가 var list: Array으로 변경되는 것이다.
  • 이렇게 설계된 클래스를 우리는 주로 구현하는 용도로 사용하며 컬렉션이나 배열에서 입력되는 값의 타입을 특정하기 위해 다음과 같이 사용된다.

var list: MutableList = mutableListOf("Mon", "Tue", "Wed")

fun testGenerics() {
// String을 제네릭으로 사용했기 때문에 list 변수에는 문자열만 담을 수 있습니다.
var list: MutableList = mutableListOf()
list.add("Mon")
list.add("Tue")
list.add("Wed")
// list.add(35) <- 입력 오류 발생합니다.
// String 타입의 item 변수로 꺼내서 사용할 수 있습니다.
for (item in list){
Log.d("Generic", "list에 입력된 값은 ${item}입니다.")
}
}

profile
진정한 개발자는 코드를 두려워하지 않는다. 오히려 코드가 그를 두려워한다.

0개의 댓글