我正在
抛出java.lang.ClassNotFoundException: kotlin.reflect.KotlinReflectionInternalError
在我的spring引导休息端点中序列化包含以下枚举的类。
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,并且它可以正常工作。
P.S。:我的build.gradle
中有compile("com.fasterxml.jackson.module:jackson-module-kotlin:2.9.+")
依赖项
如何让杰克逊序列化kotlin的enum课程?
答案 0 :(得分:0)
我认为您应该将@JsonCreator批注添加到随播广告的#fromString方法中,以告知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")
}
}
}
}