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

如何用OpenAPI Generator为Set类型属性生成默认值?

解决OpenAPI Generator生成带默认值Set属性的问题

方法1:通过配置文件指定Set的默认实现

在OpenAPI Generator的配置文件(如config.json)中添加以下配置,指定Set类型的默认实例化类为LinkedHashSet:

{
  "defaultInstantiationType": {
    "java.util.Set": "java.util.LinkedHashSet"
  },
  "instantiateTypes": true
}

同时保持你的OpenAPI Schema定义不变,必须包含default: []和uniqueItems: true:

scopes:
  type: array
  default: []
  items:
    type: string
  uniqueItems: true

重新生成代码后,Set属性会自动带上new LinkedHashSet<>()的默认值初始化。

方法2:修改模板文件自定义初始化逻辑

如果配置文件的方式不满足需求,可以直接修改OpenAPI Generator的Java模型模板(通常是model.mustache):

  1. 找到模板中处理属性声明的代码段
  2. 针对Set类型的属性,替换为带初始化逻辑的代码:
{{#isSet}}
@JsonProperty("{{name}}")
{{#isValid}}@Valid{{/isValid}}
private {{>imports}}{{complexType}} {{name}} = new LinkedHashSet<>();
{{/isSet}}

之后重新生成代码,即可得到带默认值的Set属性。

内容的提问来源于stack exchange,提问作者Jörgen Lundberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:42:06