Kotlin中的泛型使用与Java类似,但是Kotlin提供了更强大的类型推断功能。在声明泛型类、函数或接口时,可以使用尖括号<>来指定泛型类型,例如:
class Box<T>(t: T) {
var value = t
}
fun <T> printItem(item: T) {
println(item)
}
在上面的例子中,Box类和printItem函数都使用了泛型T。Kotlin会根据传入的参数类型推断出T的具体类型,从而避免了在调用时显式指定泛型类型。
另外,Kotlin还提供了类型投影的概念,用于处理泛型类型的逆变(contravariant)和协变(covariant),以及星号投影(star projection)等高级用法。通过类型投影,可以更加灵活地处理泛型类型的参数传递和返回值。