[kotlin] 제네릭 타입의 사용법
제네릭 타입은 클래스, 인터페이스, 메서드를 정의할 때 사용되는 타입 매개변수입니다. 제네릭을 사용하면 재사용성이 높고 안전한 코드를 작성할 수 있습니다.
제네릭 클래스
제네릭 클래스는 타입 매개변수를 가진 클래스로, 다음과 같이 선언합니다:
class Box<T>(val item: T) {
fun getItem(): T {
return item
}
}
위의 예제에서 Box
클래스는 T
라는 제네릭 타입을 가지며, item
속성과 getItem
메서드는 해당 제네릭 타입을 사용합니다.
제네릭 함수
제네릭 함수는 다음과 같이 선언할 수 있습니다:
fun <T> printItem(item: T) {
println(item)
}
위의 예제에서 <T>
는 제네릭 타입을 선언하며, printItem
함수는 해당 제네릭 타입을 매개변수로 사용합니다.
제네릭 제약(Constraint)
제네릭 타입의 범위를 제한하기 위해 제네릭 제약을 사용할 수 있습니다. 예를 들어, 다음과 같이 인터페이스를 구현하는 타입만 허용하는 제네릭 클래스를 정의할 수 있습니다:
interface Printable {
fun print()
}
class PrintBox<T : Printable>(val item: T) {
fun printItem() {
item.print()
}
}
위의 예제에서 PrintBox
클래스는 T
라는 제네릭 타입을 가지며, 해당 타입은 Printable
인터페이스를 구현한 타입으로 제한됩니다.
제네릭 타입을 사용하면 강력하고 안전한 코드를 작성할 수 있으며, 다양한 상황에 유용하게 활용할 수 있습니다.
참고 문헌: