美文网首页
kotlin 泛型攻略

kotlin 泛型攻略

作者: 忧郁的老王 | 来源:发表于2021-02-04 17:44 被阅读0次

基础用法

  • 在 Kotlin 中使用 :代替 extends 对泛型的的类型上界进行约束。
fun <T : Number> sum(vararg param: T) = param.sumByDouble { it.toDouble() }
fun main() {
    val result1 = sum(1,10,0.6)
    val result2 = sum(1,10,0.6,"kotlin") // compile error
}
  • 为同一类型参数添加多个约束替代java中的 &的 是 where关键字
//java实现
class ClassA { }
interface InterfaceB { }
public class MyClass<T extends ClassA & InterfaceB> {
    Class<T> variable;
}

//kotlin 实现
open class ClassA
interface InterfaceB
interface InterfaceC
class Myclass<T> where T : ClassA, T : InterfaceB ,T:InterfaceC
  • in和out修饰符分别表示 该参数只能做入参或者只能做出参(返回类型)
fun main() {
    val list1:MutableList<String> = mutableListOf()
    list1.add("hello")
    list1.add("world")
    val list2:MutableList<out String> = mutableListOf()
    list2.add("hello")  // compile error
    list2.add("world")  // compile error
    val list3:MutableList<in String> = mutableListOf()
    list3.add("hello")
    list3.add("world")
    lateinit var list4:MutableList<String>
    list4 = list3;     // compile error
}
  • <*>星号投影表示不确定类型类似于java无类型通配符<?> 因为类型不确定 所以星号投影只能读取不能写入

    fun test(list:MutableList<*>) {
        list.add("s") // compile error
    }

相关文章

  • kotlin 泛型攻略

    基础用法 在 Kotlin 中使用 :代替 extends 对泛型的的类型上界进行约束。 为同一类型参数添加多个约...

  • 泛型

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

  • Kotlin---泛型

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

  • Kotlin 泛型 VS Java 泛型

    建议先阅读我的上一篇文章 -- Java 泛型 和 Java 泛型一样,Kotlin 泛型也是 Kotlin 语言...

  • Kotlin for android学习六:泛型

    前言 kotlin官网和kotlin教程学习教程的笔记。 1. 声明泛型 2. 泛型约束 : 对泛型的类型上限进行...

  • 泛型

    Kotlin 泛型详解 声明一个泛型类 声明一个泛型方法 泛型约束 List 和 List 是...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • Kotlin:泛型杂谈(下)

    在Kotlin:泛型杂谈(上)中,从泛型扩展属性、非空约束、实例化类型参数三个方面简单介绍了一下Kotlin中泛型...

  • 【Android】 Kotlin(七)泛型

    深入理解Kotlin泛型 Kotlin 的泛型与 Java 一样,都是一种语法糖,即只在源代码中有泛型定义,到了c...

  • Kotlin 泛型

    说起 kotlin 的泛型,就离不开 java 的泛型,首先来看下 java 的泛型,当然比较熟悉 java 泛型...

网友评论

      本文标题:kotlin 泛型攻略

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