访问Kotlin枚举条目的成员

时间:2018-09-06 21:25:09

标签: kotlin

给出:

enum class Foo {
    BAR,
    BAZ { fun qux(foo: Any) {} }
}

这似乎是合法代码,但是当我尝试像这样访问qux()时:

val foo = Foo.BAZ
foo.qux("blah")

...它不起作用,因为成员函数不可见。

是否可以通过枚举类访问qux()?如果不是,那么枚举条目的自定义成员的用例是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用它来实现接口和抽象方法,但是由于这些主体块是anonymous classes,因此您将无法显式访问每个条目的值。

也许您正在寻找的东西可以通过使用sealed classes来实现?