考虑一下,我有一个要从JSON序列化到/从JSON序列化的类:
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
class C
@JsonCreator
constructor(@param:JsonProperty(value = "p", index = 0, required = true)
@get:JsonProperty(value = "p", index = 0, required = true)
val p: String)
相同的JsonProperty
注释必须同时应用于getP()
方法(get
use-site target,以使序列化正确运行)和构造函数参数(param
使用站点目标,以成功进行反序列化)。
在这两种情况下,注释及其成员值基本相同。可以更简洁地重写上面的内容吗?
如果我将上面的代码替换为
class C
@JsonCreator
constructor(@JsonProperty(value = "p", index = 0, required = true)
val p: String)
-那么注释仅应用于构造函数参数(RuntimeVisibleParameterAnnotations
),而不应用于getter方法。