Swagger代码生成工具是否具有一个选项,用于选择所生成的类应具有默认为null还是为空的List,Maps等?
以前,默认值为空,例如private List<String> names = new List<String>
。
此刻,默认值为null,即private List<String> names = null
更改是在2017年4月完成的,根据我对changes made的了解,没有选择使用哪个选项的选项,从那时起,它始终默认为null。
讨论中包含了为什么会更好的原因,我对此没有反对意见。但是我有一个旧版应用程序,它使用了某种形式的(Swagger)生成的源,几乎没有进行任何修改,而我试图摆脱这些源,只使用swagger生成的模型。问题在于,代码最初是以无法有空值的方式编写的,因此不会执行空值检查。
那该怎么办?使用以前的Swagger代码生成器?
该API不在我的控制范围内,因此不能进行yaml修改(如果这样做甚至可以提供帮助)。
答案 0 :(得分:1)
基于评论[Java] How can we set List and Map to null by default in models?,您需要编辑Java的任何胡子模板文件(很可能是pojo.mustache),并更改实例化列表/映射的方式。
答案 1 :(得分:0)
我在猜测问题时就解决了这个问题,并将codegen cli版本降级为2.2.2,这是AFAIK的最后一个创建列表并映射为空而不是null的版本。