技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • 基础入门

    • Kotlin 教程
    • 快速开始
    • 基础语法
    • 变量与类型
    • 控制流
    • 函数
  • 面向对象

    • 类与对象
  • 高级特性

    • 泛型
    • 集合操作
    • 协程

泛型

泛型类

class Box<T>(val value: T)

val intBox = Box(123)
val stringBox = Box("Hello")

泛型函数

fun <T> singletonList(item: T): List<T> {
    return listOf(item)
}

val list = singletonList(1)
val strings = singletonList("Hello")

类型约束

// 上界约束
fun <T : Comparable<T>> sort(list: List<T>) {
    // T 必须实现 Comparable
}

// 多个约束
fun <T> process(value: T) where T : CharSequence, T : Comparable<T> {
    // T 必须同时满足两个约束
}

型变

协变 (out)

interface Producer<out T> {
    fun produce(): T
}

val stringProducer: Producer<String> = object : Producer<String> {
    override fun produce() = "Hello"
}

val anyProducer: Producer<Any> = stringProducer  // OK

逆变 (in)

interface Consumer<in T> {
    fun consume(item: T)
}

val anyConsumer: Consumer<Any> = object : Consumer<Any> {
    override fun consume(item: Any) {
        println(item)
    }
}

val stringConsumer: Consumer<String> = anyConsumer  // OK

星投影

fun printArray(array: Array<*>) {
    for (item in array) {
        println(item)
    }
}

具体化类型参数

inline fun <reified T> isInstance(value: Any): Boolean {
    return value is T
}

println(isInstance<String>("Hello"))  // true
println(isInstance<Int>("Hello"))     // false
最近更新: 2026/2/24 16:53
Contributors: hailong
Next
集合操作