제네릭

Suyong Lee·2021년 9월 10일
0

Android

목록 보기
17/22
post-thumbnail

제네릭은 입력되는 값의 타입을 자유롭게 사용하기 위한 설계 도구다.

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

public interface MutableList<E> {
	var list: Array<E>
    	...
}

클래스명 옆에 라고 되어 있는 부분에 String과 같은 특정 타입이 지정되면 클래스 내부에 선언된 모든 E에 String이 타입으로 지정된다. 결과적으로 var list: Array가 var list: Array으로 변경되는 것이다.

var list: MutableList<제네릭> = mutableListOf("월","화","수")

fun testGenerics() {
	var list: MutableList<String> = mutableListOf() // String을 제네릭으로 사용했기 때문에 list 변수에는 문자열만 담을 수 있다.

list.add("월")
list.add("화")
list.add("수")

// list.add(35)  입력 오류가 발생 (Integer 타입이니까)
// String 타입의 item 변수로 꺼내서 사용 가능

for(item in list) {
		Log.d("Generic", "list에 입력된 값은 ${item}입니다."
    }
}
profile
이수용

0개의 댓글