OpenAPI配置Enum含null值执行mvn构建抛出空指针异常如何解决
异常原因
这个NullPointerException是旧版OpenAPITools代码生成器的已知BUG,updateCodegenPropertyEnum方法在遍历枚举值列表时没有做非空校验,当枚举列表中存在null值时,方法尝试对null执行字符串操作就会直接抛出空指针。
同时你存在规范使用误区:OpenAPI 3.0规范中,只要给字段配置nullable: true就可以表示该字段允许传null,不需要额外把null加入枚举值列表,同时添加反而会触发旧版生成器的问题。
解决步骤
- 首选方案:删除enum列表中的null值,仅保留
nullable: true配置即可满足枚举字段允许为空的需求,修改后的ItemType定义如下:
ItemType: description: 'The Type of the Item' type: string nullable: true enum: - "PHYSICAL" - "DIGITAL"
- 若业务要求必须将null纳入枚举可选值:将项目中依赖的
openapi-generator-maven-plugin升级到5.0.0及以上版本,该版本已经修复了枚举值为null时的空指针问题。 - 临时兼容方案:如果暂时无法升级插件,可以新增一个
NULL/UNDEFINED类的枚举字面量代替null值,在业务代码层做对应转换,避开null值出现在枚举列表中。
内容的提问来源于stack exchange,提问作者user641887
相关产品推荐
相关产品推荐

