Override properties in enum class


I had some code like this:

interface Assets {
    val fullPath: String

enum class MusicAssets(fileName: String) : Assets {

    override val fullPath: String
    init {
        val prefix = "audio/music/"
        val suffix = ".mp3"
        fullPath= "$prefix$fileName$suffix"

The IDEA told me “Accessing non-final property path in constructor” on the fullPath.
Then I added a final on fullPath.

final override val fullPath: String

The IDEA now said “Redundant modality modifier” on the final

Which is right?


It works… I just copy Your code and add the main function with for (m in MusicAssets.values()) {println(m.fullPath)}
“C:\Program Files\Java\jdk1.8.0_101\bin\java” -Didea.launcher.port=7533 “-Didea.launcher.bin.path=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.2\bin” -Dfile.encoding=windows-1251 -classpath “C:\Program Files\Java\jdk1.8.0_101\jre\lib.(…skipped).;C:\danik_ik\Projects\java\kt_probe\out\production\kt_probe;C:\Users\danik_ik.IdeaIC2016.2\config\plugins\Kotlin\kotlinc\lib\kotlin-runtime.jar;C:\Users\danik_ik.IdeaIC2016.2\config\plugins\Kotlin\kotlinc\lib\kotlin-reflect.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.2\lib\idea_rt.jar” com.intellij.rt.execution.application.AppMain NnnKt

Process finished with exit code 0

What am I doing wrong?