Skip to content

Serializer of kind ENUM cannot be serialized polymorphically with class discriminator #1486

@P1NG2WIN

Description

@P1NG2WIN

Describe the bug
java.lang.IllegalArgumentException: Serializer for ChangeAlarmTypeRequest of kind ENUM cannot be serialized polymorphically with class discriminator

All subclasses of MethodExecuteCode have this problem

To Reproduce

polymorphic(MethodExecuteCode::class) {
    subclass(MethodExecuteStateTypeCode::class)
    subclass(ChangeAlarmTypeRequest::class)
    subclass(IncidentMethodCode::class)
}


interface MethodExecuteCode

@Serializable
enum class MethodExecuteStateTypeCode: MethodExecuteCode {

    @SerialName("create") CREATE,
    @SerialName("enable") ENABLE,
    @SerialName("disable") DISABLE,
    @SerialName("delete") DELETE,

}

@Serializable
enum class ChangeAlarmTypeRequest : MethodExecuteCode {
    @SerialName("alarm") START,
    @SerialName("cancel") STOP,
    @SerialName("update") UPDATE
}

@Serializable
enum class IncidentMethodCode: MethodExecuteCode {

    @SerialName("accept") ACCEPT,
    @SerialName("reject") REJECT,

}

Environment

  • Kotlin version: 1.5.0
  • Library version: 1.2.1
  • Kotlin platforms: JVM Android
  • Gradle version: 7.0.0
  • Other relevant context: Java 8

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions