Enums Kotlin枚举序列化:java.lang.ClassNotFoundException:Kotlin.reflect.KotlinReflectionInternalError

Enums Kotlin枚举序列化:java.lang.ClassNotFoundException:Kotlin.reflect.KotlinReflectionInternalError,enums,kotlin,jackson,Enums,Kotlin,Jackson,我要走了 java.lang.ClassNotFoundException: kotlin.reflect.KotlinReflectionInternalError 在我的spring boot rest端点中,序列化包含以下枚举的类时 enum class Status private constructor(private val code: String) { ACTIVE("active"), PENDING("pending"); companion object

我要走了

java.lang.ClassNotFoundException: kotlin.reflect.KotlinReflectionInternalError

在我的spring boot rest端点中,序列化包含以下枚举的类时

enum class Status private constructor(private val code: String) {
    ACTIVE("active"), PENDING("pending");

    companion object {
        fun fromString(value: String): Status {
            return when (value) {
                "active" -> ACTIVE
                "pending" -> PENDING
                else -> throw IllegalArgumentException("Not supported status $value")
            }
        }
    }
}
我试着将这个枚举重写为Java,它工作正常

备注:我的build.gradle中有
编译(“com.fasterxml.jackson.module:jackson module kotlin:2.9.+”)
依赖项


如何让jackson序列化kotlin的enum类?

我认为应该在companion的#fromString方法中添加@JsonCreator注释,以便告诉jackson它必须使用它。我也没有看到@JsonValue注释

enum class Status private constructor(@JsonValue val code: String) {
ACTIVE("active"), PENDING("pending");

companion object {

    @JsonCreator
    fun fromString(value: String): Status {
        return when (value) {
            "active" -> ACTIVE
            "pending" -> PENDING
            else -> throw IllegalArgumentException("Not supported status $value")
        }
    }
}
}