34. 泛型

作者: 厚土火焱 | 来源:发表于2017-11-25 23:30 被阅读13次

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

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

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

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

    通过内部属性变量输出值

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

    看结果

    1
    2
    10
    smith
    

    泛型函数

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

    运行结果

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

    相关文章

      网友评论

        本文标题:34. 泛型

        本文链接:https://www.haomeiwen.com/subject/njicbxtx.html