如何在 Kotlin 中为枚举创建 "static" 方法?

How can I create "static" method for enum in Kotlin?

Kotlin 已经为枚举 class 提供了 "static" 个方法,例如 valuesvalueOf

例如我有枚举

public enum class CircleType {
    FIRST
    SECOND
    THIRD
}

如何添加静态方法,例如random(): CircleType?扩展函数似乎不适用于这种情况。

就像任何其他 class 一样,您可以在枚举 class:

中定义一个 class 对象
enum class CircleType {
  FIRST,
  SECOND,
  THIRD;
  companion object {
     fun random(): CircleType = FIRST // http://dilbert.com/strip/2001-10-25
  }
}

然后您就可以将此函数调用为 CircleType.random()

编辑:注意枚举常量条目之间的逗号,以及伴随对象之前的结束分号。现在两者都是强制性的。