java - 以 set 开头的字段名称的 setter 定义冲突
问题描述
我们有一个从 yml 生成的 pojo,它在 getter 上定义了 @JsonProperty。这是基于 openapi 的 maven 插件。对于一个这样的 yml,我们有一个字段结算类型。我们无法更改名称,因为这是要在 rest api 调用中发送给供应商的字段。当使用杰克逊的 ObjectMapper 反序列化对象时,我们得到以下错误 -
属性“settlementType”的设置器定义冲突:settlementType(1 param) 与 setSettlementType(1 param)。
我尝试了一个 mixin 课程。
public class SettlementTypeMixin {
@JsonProperty("settlementType"
String settlementType;
@JsonIgnore
public void setSettlementType(String settlementType) {
this.settlementType = settelementType;
}
}
我使用 addMixinAnnotations 方法将 mixin 添加到映射器中。但我没有看到行为有任何变化。
我还尝试设置 fieldVisibility、getterVisibility、setterVisibility 和 CreatorVisibilities。yml 还需要其他类型,最后我必须启用下面提到的所有类型的可见性。
我无法使用杰克逊获取对象映射。请让我知道是否有解决办法。
解决方案
推荐阅读
- c - 在C中按字符串长度对字符串数组进行排序
- objective-c - 语法 self = [self init] 在初始化方法中是否可以接受?
- javascript - Google Apps 脚本 - 全局变量替代
- erlang - 我可以直接使用 Dialyzer GUI 或 dialyzer 命令行工具而不使用 dilyxir 来获取长生不老药代码吗?
- oracle11g - 在 SQL 加载器的列中传递变量
- jira - 发送选择多个值以在 JIRA 中创建问题
- c# - 如何正确设置 SharpLink 和 LavaLink
- android - BLE双击选择
- python - 未定义函数
- sql - 将 Access 计算字段转换为 T-SQL