美文网首页
Kotlin泛型 (3)泛型类

Kotlin泛型 (3)泛型类

作者: 狼性代码人 | 来源:发表于2019-06-09 20:13 被阅读0次

  泛型类的声明,是在类名后面添加 <T>,下面通过自定义队列示例介绍泛型类的使用。

class Queue<T> {
    private val elements: MutableList<T>

    init {
        elements = ArrayList<T>()
    }

    fun push(ele: T): Boolean = elements.add(ele)

    fun pop(): T? = if (elements.isEmpty()) null else elements.removeAt(0)

    override fun toString(): String
            = if (elements.isEmpty()) "[]" else elements.run {
        val stringBuilder = StringBuilder()
        this.joinTo(stringBuilder, ",", "[", "]")
        stringBuilder.toString()
    }
}

fun main(args: Array<String>?) {
    val queue1 = Queue<String>()
    queue1.push("a")
    queue1.push("b")
    queue1.push("c")
    queue1.push("d")
    queue1.push("e")
    // queue1.push(2) // 编译错误
    println(queue1)
    queue1.pop()
    println(queue1)

    println("-------------")

    val queue2 = Queue<String>()
    println(queue2)
}

2019-06-06 17:31:28.582 4014-4014/cn.ak.kot I/System.out: [a,b,c,d,e]
2019-06-06 17:31:28.583 4014-4014/cn.ak.kot I/System.out: [b,c,d,e]
2019-06-06 17:31:28.583 4014-4014/cn.ak.kot I/System.out: -------------
2019-06-06 17:31:28.583 4014-4014/cn.ak.kot I/System.out: []

  泛型类声明时也可以有多个类型参数,类似于泛型函数可以使用不同的字母声明不同的类型参数,多个类型参数直接也是使用逗号 (,) 分隔。泛型声明时也可以使用泛型约束。如下:

class Queue<T: Number> {
    ...
}

多个泛型参数,多个约束

class Test<T: Number, M: MutableList<M>> {
    ...
}

相关文章

  • Kotlin 泛型

    Kotlin 泛型 1. 泛型类 定义一个泛型类 使用 在继承中 使用 2. 泛型函数 使用 3. 泛型的擦除 无...

  • Kotlin---泛型

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

  • 泛型

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

  • kotlin--泛型

    kotlin作为一种高级语言,也提供了泛型,它的泛型比Java更为灵活 一、泛型类 1.定义泛型类 定义泛型类和J...

  • 泛型

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

  • Kotlin 泛型

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

  • Kotlin泛型 (3)泛型类

      泛型类的声明,是在类名后面添加 ,下面通过自定义队列示例介绍泛型类的使用。   泛型类声明时也可以有多个...

  • 泛型

    1.什么是泛型? 2.为什么需要泛型? 3.泛型类、接口 泛型类注意事项: 从泛型类派生子类 泛型接口 泛型接口的...

  • java学习—— 泛型定义

    1、泛型类定义 [访问权限] class 类名称<泛型类型标识1, 泛型标识2,...,泛型标识3> { [访问...

  • 泛型

    一、泛型类、泛型接口和泛型方法1、泛型接口的定义: 2、两种泛型类的定义:(1) (2) 3、泛型方法的定义,可以...

网友评论

      本文标题:Kotlin泛型 (3)泛型类

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