【发布时间】:2015-04-29 11:16:01
【问题描述】:
Kotlin 已经有许多用于枚举类的“静态”方法,例如 values 和 valueOf
例如我有枚举
public enum class CircleType {
FIRST
SECOND
THIRD
}
如何添加random(): CircleType等静态方法?扩展函数似乎不适用于这种情况。
【问题讨论】:
Kotlin 已经有许多用于枚举类的“静态”方法,例如 values 和 valueOf
例如我有枚举
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()。
编辑:注意枚举常量条目之间的逗号,以及伴随对象之前的结束分号。现在两者都是强制性的。
【讨论】:
@JvmStatic,否则就是浪费资源
Companion 引用。
@JvmStatic 如果你真的想使用 Java