It is not acceptable if you should support legacy Java code as well. I cannot just remove the existing enumeration and replace it with a class hierarchy. It is too expensive in my case.
Unfortunately I guess this is one of Kotlin’s current shortcomings, you asked for a workaround and here it is. Sealed classes are extensions of Enums and should work mostly the same, so I don’t think you are losing too much over there. I’m not a kotlin expert so I maybe wrong.
Unfortunately, a factory-method work-around will not work with enum classe and Kotlin indeed does not support type parameters for constructors. Here is a relevant issue: https://youtrack.jetbrains.com/issue/KT-18741