当前位置: 首页>后端>正文

kotlin中的泛型

  1. java泛型:用于项目编译期的类型限定 编译后会类型擦除也就是编译后确认了使用的类型:
    • 泛型类,泛型属性,泛型方法
    • 泛型通配符即其泛型上界和下届语法:
      • extends 类:上界语法:即类型是指定类型及其子类包括指定类型
      • ?super 类:下界语法:即类型是指定类型及其父类
      • ?:等同于 ?extends Object
    • 泛型的继承:父类指定泛型,子类可以继承父类泛型,半继承半实现,全实现,不继承也不实现父类泛型,具体参考参考文章。
  2. kotlin 泛型:和java的泛型一致,kotlin也支持泛型,泛型类,泛型属性,泛型函数


    kotlin中的泛型,第1张
    kotlin泛型语法
    • 使用关键字 out 来支持协变,等同于 Java 中的上界通配符 extends。
      • out 泛型仅能用于返回类型(输出)
    • 使用关键字 in 来支持逆变,等同于 Java 中的下界通配符 super。
      • in 泛型仅能用于参数(输入)
    • 前面讲到了 Java 中单个 号也能作为泛型通配符使用,相当于 extends Object。它在 Kotlin 中有等效的写法:* 号,相当于 out Any。
    • where:java中上界语法:?extends 类 kotlin也支持 kotlin语法:使用:代替了原有的?extends 即 T:类:标识T代表着指定类及其子类,上界为指定类,同时可以指定多个类,即类型是多个类的子类才符合条件,此时就用到where关键字,即:where T:A,T:B: 代表T记得是a的子类也的是b的子类才符合条件。

参考文章:
java:泛型基础
java:泛型基础2
java泛型继承
kotlin:泛型


https://www.xamrdz.com/backend/3g91941180.html

相关文章: