enums - 枚举中的 'name' 声明冲突

标签 enums kotlin

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

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

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

Error:(9, 5) Kotlin: Conflicting declarations: enum entry name, public final val name: String

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

最佳答案

Kotlin 中的枚举已经定义了一个 name 属性(如 Java)。这与您名为 name 的枚举冲突。要修复它,您可以将其大写,这更惯用:

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

关于enums - 枚举中的 'name' 声明冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54182398/

相关文章:

java - 使用 Angular 客户端访问休息端点时的 CORS 问题 - 允许跨源

java - 如何从 Android kotlin 中的非 Activity 类开始新 Activity ?

java - 如何使用android中的函数进行异步计数器

java - Enums vs Subclasses,哪个是面向对象设计?

Android/Kotlin : How to create a class that uses a DBLocal class? 报错信息:类型不匹配需要上下文

c++ - C++ 类中的枚举

swift - 在 Swift wrt 消息类型中注册接收者对象

kotlin - RxJava 2.0 和 Kotlin Single.zip() 以及单曲列表

java - 如何允许其他人通过 API 向类添加自定义枚举

C:指向函数中结构体数组的指针