我无法在枚举类的value参数上应用Jackson的@JsonValue批注:

enum class CancellationReason(@JsonValue val code: String) {
    CUSTOMER_RESIGNED("20"),
    ERRORS_IN_FOO("21"),
    ERRORS_IN_BAR("24");
}

错误消息指出:This annotation in not applicable to target 'value parameter'。有什么问题?

最佳答案

您可以将jackson-module-kotlin升级到2.9.0版,该错误将消失,因为@JsonValue批注在该版本中获得了目标FIELD

或者,通过添加@get:来指定annotation use-site target来解决此问题:

enum class CancellationReason(@get:JsonValue val code: String) {
    CUSTOMER_RESIGNED("20"),
    ERRORS_IN_FOO("21"),
    ERRORS_IN_BAR("24");
}

10-08 15:08