在 Jackson 中,当您使用 @JsonCreator
注释构造函数时,必须使用 @JsonProperty
注释其参数。所以这个构造函数
public Point(double x, double y) {
this.x = x;
this.y = y;
}
变成这样:
@JsonCreator
public Point(@JsonProperty("x") double x, @JsonProperty("y") double y) {
this.x = x;
this.y = y;
}
我不明白为什么它是必要的。能解释一下吗?
最佳答案
Jackson 必须知道将字段从 JSON 对象传递到构造函数的顺序。 在 Java 中使用反射无法访问参数名称 - 这就是您必须在注释中重复此信息的原因。
关于java - 为什么构造函数用@JsonCreator注解时,它的参数必须用@JsonProperty注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920367/