Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Conflicting 'name' declaration in enum

Tags:

enums

kotlin

I have a simple enum class in which I would like to have a field called name.

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

Unfortunately, this does not seem to work in Kotlin. Compilation fails with the message:

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

The same Enum class as Java code works fine. How may I solve this in Kotlin?

like image 399
petarov Avatar asked Dec 27 '25 22:12

petarov


1 Answers

Enums in Kotlin already have a name property already defined (like Java). This is conflicting with your enum called name. To fix it, you could capitalize it, which is more idiomatic:

enum class DeviceFieldQuery(val clazz: Class<*>) {
    Id(Int::class.java),
    Name(String::class.java),
}
like image 98
Todd Avatar answered Dec 30 '25 22:12

Todd



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!