枚举中的“名称”声明冲突

时间:2018-09-28 14:24:36

标签: enums kotlin

我有一个简单的枚举类,我想在其中添加一个名为 name 的字段。

enum class DeviceFieldQuery(val clazz: Class<*>) {
    id(Int::class.java),
    name(String::class.java),
}

不幸的是,这在Kotlin中似乎不起作用。编译失败,并显示以下消息:

  

错误:(9,5)Kotlin:声明冲突:枚举项名称,公共最终值名称:String

与Java代码相同的Enum类可以正常工作。我该如何在Kotlin中解决这个问题?

1 个答案:

答案 0 :(得分:2)

Kotlin中的枚举已经定义了name属性(例如Java)。这与名为name的枚举冲突。要解决此问题,您可以将其大写,这更常见:

enum class DeviceFieldQuery(val clazz: Class<*>) {
    Id(Int::class.java),
    Name(String::class.java),
}