[kotlin] 코틀린에서 제네릭을 사용하여 코드의 재사용성을 높이는 방법은 어떻게 되는가?
제네릭 클래스 정의
제네릭 클래스는 일반적인 형태로 다음과 같이 정의됩니다.
class Box<T>(val content: T) {
// ...
}
T
는 제네릭 타입 매개변수로, 어떤 타입이든 사용될 수 있습니다. 이제 Box
클래스는 어떤 타입이든 포함할 수 있는 상자로 재사용할 수 있습니다.
제네릭 함수 정의
함수에서도 제네릭을 활용할 수 있습니다.
fun <T> printItem(item: T) {
println(item)
}
위의 printItem
함수는 어떤 타입(T
)의 item
이든 받아들여 출력할 수 있습니다.
제네릭 제약
때로는 제네릭 타입에 제약을 두어야 할 때도 있습니다. 이때 where
절을 사용하여 특정 타입에 제약을 둘 수 있습니다.
fun <T : Number> convertToString(value: T): String {
return value.toString()
}
이 예시에서 T
는 Number
클래스 또는 그 하위 클래스만 인자로 받을 수 있습니다.
제네릭을 적절히 활용하면, 코드의 재사용성을 높일 수 있으며, 타입 안정성을 확보하면서 다양한 타입에 대해 유연하게 대응할 수 있습니다.
이상으로 코틀린에서 제네릭을 사용하여 코드의 재사용성을 높이는 방법에 대해 알아보았습니다.