美文网首页
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")
    }
}

相关文章

  • Java泛型通配符,上下界。

    为了理清楚泛型的通配符和上下界的作用,并为了Kotlin的泛型中的关键字in和out的理解,在此用小demo重新梳...

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

    定义类 out关键字的使用 加上这个out关键字表示接收当前类型或它的子类,相当于Java的 ArrayList<...

  • Kotlin Weekly 中文周报 —— 23

    Kotlin 开发中文周报 文章 Kotlin 泛型『in』和『out』的变体(android.jlelse.eu...

  • kotlin中的reified关键字

    说kotlin中这个关键字之前先简单说下Java中的泛型,我们在编程中,出于复用和高效的目的,经常使用泛型。泛型是...

  • Kotlin(1.1)学习笔记(6)——泛型

    in和out 和java一样,kotlin中也有泛型的概念。不同的是,java中使用了通配符而kotlin中不存在...

  • Kotlin开发知识(一)

    1.Kotlin泛型使用 Out(协变) 如果你的类是将泛型作为内部方法的返回,那么可以用out。可以称其为pro...

  • Kotlin泛型中的In和Out

    当我们在Kotlin中定义泛型时,我们会发现它需要使用in和out两个关键字来定义。从形式上来讲,这是一种定义逆变...

  • Kotlin---泛型

    Kotlin不变型泛型 Kotlin的不变型泛型和Java一样,通过声明泛型类型来使用泛型类。而该种泛型声明后,则...

  • Kotlin-泛型

    源自:码上开学-Kotlin的泛型 kotlin的in和out对应的是java中带上界和下界的通配符?号。【in】...

  • 泛型

    与Java泛型相同,Kotlin同样提供了泛型支持。对于简单的泛型类、泛型函数的定义,Kotlin 与 Java ...

网友评论

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

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