You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

继承类中使用@ApiModelProperty覆盖Swagger描述/示例是否可行?

问题解答

你当前在子类重复定义private同名currency字段的方式无法实现配置覆盖,反而会导致Swagger生成两份currency字段说明。Java中类字段不存在重写机制,私有字段仅对所属类可见,子类定义的同名字段本质是全新的独立字段。

如果要在不重新定义字段的前提下覆盖父类字段的Swagger配置,可通过重写父类对应字段的getter方法实现,Swagger默认会优先读取getter方法上的@ApiModelProperty配置,具体实现如下:

正确实现代码

父类保持原有逻辑不变,子类仅需要重写currency字段的getter方法并添加注解:

public class SpecificAccount extends Account {
    @Override
    @ApiModelProperty(example = "USD")
    public CurrencyCode getCurrency() {
        return super.getCurrency();
    }
}

补充说明

  • 该方式支持覆盖所有@ApiModelProperty配置,包括示例值、字段描述、是否必填等属性。
  • 如果你使用的是Swagger 3(OpenAPI 3)版本,@ApiModelProperty已被标记为废弃,建议替换为@Schema注解,使用逻辑完全一致,将@Schema(example = "USD")加在重写的getter方法上即可生效。
  • 确保你的Swagger配置没有关闭getter方法的扫描规则,绝大多数项目的默认Swagger配置都支持该实现。

内容的提问来源于stack exchange,提问作者Melad Basilius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:27:03