Kotlin 泛型允许你编写可以处理多种数据类型的通用代码。Kotlin 泛型通过类型参数(type parameters)实现,这些类型参数在定义泛型类、接口或函数时使用。类型参数在实例化时被具体的类型替换。
以下是 Kotlin 泛型处理不同类型的一些示例:
- 定义泛型类:
class Box(val value: T) { fun getValue(): T { return value } }
在这个例子中,T
是一个类型参数,表示任何类型。你可以使用不同的类型实例化这个类,例如:
val intBox = Box(42) val stringBox = Box ("Hello, Kotlin!")
- 定义泛型函数:
fun printMax(a: T, b: T): T {
return if (a > b) a else b
}
在这个例子中,
表示函数接受两个类型为 T
的参数,并返回一个类型为 T
的值。你可以使用不同的类型调用这个函数,例如:
val maxInt = printMax(10, 20) // maxInt 的类型是 Int val maxString = printMax("apple", "banana") // maxString 的类型是 String
- 定义泛型接口:
interface Comparable {
fun compareTo(other: T): Int
}
在这个例子中,
表示接口中的 compareTo
方法接受一个类型为 T
的参数,并返回一个 Int
类型的值。实现这个接口的类型需要提供 compareTo
方法的具体实现,例如:
data class Person(val name: String, val age: Int) : Comparable {
override fun compareTo(other: Person): Int {
return age.compareTo(other.age)
}
}
总之,Kotlin 泛型通过类型参数提供了一种灵活的方式来处理不同类型。你可以编写可重用的通用代码,同时保持类型安全。