Enums Kotlin枚举序列化:java.lang.ClassNotFoundException:Kotlin.reflect.KotlinReflectionInternalError
我要走了 java.lang.ClassNotFoundException: kotlin.reflect.KotlinReflectionInternalError 在我的spring boot rest端点中,序列化包含以下枚举的类时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
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")
}
}
}
}