Kotlin enum class 匿名类实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin enum class 匿名类实例相关的知识,希望对你有一定的参考价值。

Kotlin里的枚举类里有新玩意:就是枚举类的常量可以同时看成是一个同名匿名类

既然是类就可以与方法关联

看看官网的代码

如果你有过其它语言的使用枚举的经历,你可能对这个定义和说明很迷惑

我给你一个例子和结果,你就清楚多了

enum class ProtocolState {
  WAITING {
    override fun signal() = TALKING
  },

  TALKING {
  override fun signal() = WAITING
  };

  abstract fun signal(): ProtocolState
}

fun main(args: Array<String>) {

  val ev:ProtocolState = ProtocolState.WAITING
  println(ev.signal())

}

//结果

TALKING

Finally:

枚举常量支持枚举类,支持重载父类的方法,枚举常量匿名类规则和常量一致,但常量匿名类和父类的其它分量要用";"隔开

好了,也许,你不屑于这种想法

但是,也许等你用上Kotlin做实际开发时就会爱上它,毕竟,任何创新肯定都是从老路上隐含提出的需求。

你不待见,很可能是你道行不够而已。

以上是关于Kotlin enum class 匿名类实例的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础(十三) 嵌套类内部类和匿名内部类

匿名类实例----这是个坏主意吗?

kotlin中实现匿名内部类

Kotlin基础(十三) 嵌套类内部类和匿名内部类

如何在kotlin中的匿名类中获取父类[重复]

匿名内部类