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

Kotlin 已经有许多用于枚举类的“静态”方法,例如 valuesvalueOf

例如我有枚举

public enum class CircleType {
    FIRST
    SECOND
    THIRD
}

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

最佳答案

就像任何其他类一样,您可以在枚举类中定义类对象:

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

然后你就可以把这个函数称为CircleType.random()

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

关于enums - 如何在 Kotlin 中为枚举创建 "static"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753285/

相关文章:

java - Kotlin:使用 lambda 代替函数式接口(interface)?

lambda - 引用 Kotlin 中特定实例的方法

android - 当列名相同时,如何表示与 Android Room 的 "many to man

kotlin - 警告 : API 'variant.getPackageLibrary()' is

android - 如何将 Kotlin 与 Proguard 一起使用

android-studio - Kotlin:为什么 Android Studio 中的大多数变量

java - 如何在 Kotlin 中组合 Intent 标志

generics - 如何在 Kotlin 中获取泛型参数类

android - 房间持久性 : Error:Entities and Pojos must ha

kotlin - kotlin 中的 Dagger 2 静态提供程序方法