美文网首页
Kotlin泛型 (4)泛型接口

Kotlin泛型 (4)泛型接口

作者: 狼性代码人 | 来源:发表于2019-06-10 08:37 被阅读0次

  自定义泛型接口和自定义泛型类声明方式完全一样。以下是对上一章节泛型类代码的修改,配合使用泛型接口实现队列功能。

  • 声明泛型接口 IQueue
interface IQueue<T> {
    fun push(ele: T): Boolean
    fun pop(): T?
}
  • 声明类 Queue 实现泛型接口 IQueue
class Queue<T> : IQueue<T> {
    private val elements: MutableList<T>

    init {
        elements = ArrayList<T>()
    }

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

    override 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()
    }
}
  • 验证队列 Queue 的逻辑正确性
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)
}

相关文章

  • Kotlin泛型 (4)泛型接口

      自定义泛型接口和自定义泛型类声明方式完全一样。以下是对上一章节泛型类代码的修改,配合使用泛型接口实现队列功能。...

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • 泛型

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

  • Kotlin---泛型

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

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • TS中的泛型和装饰器

    本文目录: 1.什么是泛型 2.使用泛型变量 3.泛型接口 4.泛型类 5.泛型约束 6.装饰器 1.什么是泛型 ...

  • 泛型

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

  • 泛型

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

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

网友评论

      本文标题:Kotlin泛型 (4)泛型接口

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