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

如何配置OpenApi Generator生成忽略空值的toString()方法?

问题

我的OpenAPI Generator配置

task generateRbsModel(type: GenerateTask) {
    generatorName = "spring"
    inputSpec = "$rootDir/...openapi.yaml"
    outputDir = "${buildDir}/generate-resources/main"
    modelPackage = "....model"
    generateModelTests = false
    globalProperties = [
            modelDocs: "false",
            apis: "false",
            models: ""
    ]
    configOptions = [
            library: "spring-boot",
            dateLibrary: "java8"
    ]
}

我希望重写toString()方法,使得在展示类对象时不显示值为null的字段,请问是否可以通过配置实现生成这样的toString()方法?


解答

可以直接通过调整OpenAPI Generator的配置实现这个需求,不用编写自定义模板。

只需要在你的configOptions中添加toStringExcludeNulls: "true"配置项,修改后的完整配置如下:

task generateRbsModel(type: GenerateTask) {
    generatorName = "spring"
    inputSpec = "$rootDir/...openapi.yaml"
    outputDir = "${buildDir}/generate-resources/main"
    modelPackage = "....model"
    generateModelTests = false
    globalProperties = [
            modelDocs: "false",
            apis: "false",
            models: ""
    ]
    configOptions = [
            library: "spring-boot",
            dateLibrary: "java8",
            toStringExcludeNulls: "true" // 新增配置:忽略toString中的null字段
    ]
}

添加该配置后,生成的模型类toString()方法会自动跳过值为null的字段,只输出非null的字段内容。

如果你的项目中使用了Lombok(即配置过useLombok: "true"),则需要改用lombokToStringExcludeNulls: "true"配置项,生成的类会自动带上@ToString(excludeNulls = true)注解,同样能实现忽略null字段的效果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:01:19