kotlin泛型

image

假设一个类既有save保存方法,也有fetch读取方法,如果没有泛型限定,当IBox<Number>指向IBox<Int>的时候,首先IBox<Number>存储(不会报错),再由IBox<Int>读取,这样会导致存储的时候不会报错,但是读取的时候,类型转换会报错。(编译器已经不允许上述红框内的赋值)

那么如何允许这样赋值呢?首先如果只有存储,使用in

image

如果只有获取数据,使用out

image

那么为什么要这么传递红色方框的引用呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 泛型 泛型(Generic Type)简介 通常情况的类和函数,我们只需要使用具体的类型即可:要么是基本类型,要么...
    Tenderness4阅读 1,447评论 4 2
  • 前言 很高兴遇见你~ 在本系列的上一篇中,我们学习了 Kotlin 大部分知识点,体验到了 Kotlin 语法的便...
    sweetying阅读 8,749评论 1 13
  • 0. 引子 Kotlin 100% 与 Java 兼容,所以抛开语言表面上面的种种特质之外,背后的语言逻辑或者说“...
    bug喵喵阅读 437评论 0 1
  • 与 Java 类似,Kotlin 中的类也有类型参数: 一般来说,要创建这样类的实例,我们需要提供类型参数: 但是...
    numqin阅读 396评论 1 3
  • Kotlin 中也有泛型的概念,和 Java 中的类似,但又不尽相同,一起来认识 Kotlin 中的泛型吧。 一、...
    SheHuan阅读 28,508评论 7 24