美文网首页
Kotlin的泛型与in和out关键字使用

Kotlin的泛型与in和out关键字使用

作者: 爱学习的蹭蹭 | 来源:发表于2019-12-06 23:13 被阅读0次

    定义类

    //T 表示不确定性的,定义泛型和使用泛型
    open class Box<T> (var thing :T)
    //抽象Thing对象
    abstract class Thing
    //抽象Fruit 对象
    abstract class Fruit :Thing()
    //抽象Apple 对象
    class Apple : Fruit()
    //抽象Orange 对象
    class Orange : Fruit()
    

    out关键字的使用

    加上这个out关键字表示接收当前类型或它的子类,相当于Java的 ArrayList< ? extends Fruit>

    fun setFruitListByOut(list :ArrayList<out Fruit>){
        println(list.size)
    }
    

    in 关键字的使用

    加上这个in关键字表示接收当前类型或它的子类,相当于Java的 ArrayList< ? super Fruit>

    fun setFruitListByIn(list :ArrayList<in Fruit>){
        println(list.size)
    }
    

    接收任何类型,相当于Java的 ArrayList<?>

    fun  setFruitListByAny(list :ArrayList<*>){
        println(list.size)
    }
    
    

    泛型的使用

    //泛型的使用
    fun <T> parseType (thing : T){
        when(thing){
            is Int->println("当前类型是Int型")
            is String->println("当前类型是String型")
            else ->println("unkonwn")
        }
    }
    

    相关文章

      网友评论

          本文标题:Kotlin的泛型与in和out关键字使用

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