Kotlin 泛型在数据类中的运用主要有以下几点:
Box<T>
来存储任意类型的对象:data class Box<T>(val value: T)
fun processBox(box: Box<Int>) {
// 由于使用了泛型,不需要进行类型转换
println(box.value * 2)
}
data class User<T>(val id: Int, val name: T)
data class Product<T>(val id: Int, val name: T)
fun printUserInfo(user: User<String>) {
println("User ID: ${user.id}, Name: ${user.name}")
}
fun printProductInfo(product: Product<String>) {
println("Product ID: ${product.id}, Name: ${product.name}")
}
data class Pair<T>(val first: T, val second: T) where T : Comparable<T> {
fun compare(): Int {
return first.compareTo(second)
}
}
在这个例子中,我们限制了泛型类型参数 T
必须是 Comparable<T>
的类型,这样我们就可以确保 Pair
数据类只能用于可比较的类型。