Kotlin的枚举课中的@JsonValue注释'价值财产

时间:2017-11-03 15:46:39

标签: jackson kotlin

我无法在枚举类的值参数上应用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'。问题是什么?

1 个答案:

答案 0 :(得分:9)

您可以将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");
}