考虑以下示例:
@JsonIgnoreProperties(ignoreUnknown = true)
class ModelA {
private ModelB modelB;
}
ModelB
引入了两个重载的方法,例如setProperty(String)
和setProperty(Object)
。这混淆了杰克逊的ObjectMapper
抱怨“冲突的二传手定义”:
Caused by: java.lang.IllegalArgumentException:
Conflicting setter definitions for property "property": ModelB#setProperty(1 params) vs ModelB#setProperty(1 params)
我知道如果我可以使用继承,那么我可以像this answer中提议的那样使用@JsonIgnore
。我也知道底线解决方案是开发一个定制的杰克逊解串器(虽然在我的情况下非常复杂)。但是,如果我限制使用组合,我想知道是否有解决方法?