【发布时间】:2019-11-04 07:41:31
【问题描述】:
我收到一条警告消息:
com.fasterxml.jackson.databind.JsonMappingException: Conflicting/ambiguous property name definitions (implicit name 'balance'): found multiple explicit names: [{}Balance, Balance], but also implicit accessor: [method ResponseVO#getBalance(0 params)][visible=true,ignore=false,explicitName=false]
我有最新的 lombok 1.18.10 和 fastxml.jackson-version 2.7.5
我找到了similar issue,但它应该已在 2.7.4 中修复(已关闭)
Jackson 2.7.1 和 Lombok:“冲突/不明确的属性名称定义”#1122
我认为这毕竟可以为 2.7.4 更改,可以解决这个问题。
代码:
@Data
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor
public class ResponseVO implements Serializable {
private static final long serialVersionUID = 1;
@JacksonXmlProperty(localName = "Balance")
@JsonProperty("Balance")
@JacksonXmlElementWrapper(useWrapping = false)
List<BalanceResponseVO> balance;
这是相关的警告吗?如何修复/删除此警告?
似乎新的 Lombok 版本也将 @JsonProperty("Balance") 添加到生成的 setter 并造成这种混乱
编辑
当我删除 @JsonProperty("Balance") 时问题已解决,这在我的情况下实际上是不需要的
【问题讨论】:
-
创建字段
private时警告会消失吗? -
@JanRieke 当我删除
@JsonProperty("Balance")时已修复@ -
@user7294900 恕我直言,您应该在编辑后做出正确的回答。
-
@JanRieke
private没有修复它 -
@UserWhoMarkAsUnreproducable,在新的 lombok 1.18.10 中添加
@JsonProperty时,这是可重现的真实问题