34. 泛型

泛型即参数化类型。将类型参数化,可以用在类、接口、方法上。
泛型类

class Box(t:T){
    var value = t
}

创建类的实例时,要指定类型的参数。或者赋值让编译器来推断。

    //创建类的实例,需要指定参数类型
    val box:Box = Box(1)
    val box2 = Box(2)
    var boxInt:Box = Box(10)
    var boxString:Box = Box("smith")

通过内部属性变量输出值

    println(box.value)
    println(box2.value)
    println(boxInt.value)
    println(boxString.value)

看结果

1
2
10
smith

泛型函数

/**泛型函数*/
fun  doPrintln(content: T){
    when(content){
        is Int -> println("整型数字为 $content")
        is String -> println("字符串转换大写:${content.toUpperCase()}")
        else -> println("$content 不是整型也不是字符串")
    }
}
fun main(args: Array) {
    val age = 27
    val name = "Joel Smith"
    val bool = true

    doPrintln(age)
    doPrintln(name)
    doPrintln(bool)
}

运行结果

整型数字为 27
字符串转换大写:JOEL SMITH
true 不是整型也不是字符串

你可能感兴趣的:(34. 泛型)