codegen没有生成任何构造函数。 我提到了petstore swagger文件,使用了最新的swagger codegen jar文件。
但是只生成了默认构造函数。
它不会根据其字段生成构造函数。
如何启用它?
答案 0 :(得分:5)
如果您确实需要带有参数的构造函数,则可以通过修改以.moustache结尾的模板文件来实现。
我假设您将要编辑现有模板,并希望为每个模型构造一个构造器。
这是模型模板文件中构造函数的一个简单示例:
public {{classname}}( {{#vars}} {{datatype}} {{baseName}}{{^-last}},{{/-last}} {{#-last}}){
construct code here
}{{/-last}}{{/vars}}
请注意,这应该在{{#model}} {{/ model}}标签之间
有关胡子模板的更多信息,请参见
答案 1 :(得分:0)
我首先要感谢@Viktor Baert的回答。尽管答案提供了方向,但仍不足以解决问题。请注意上述答案的变化和补充。
在构造函数签名中,此更改从 {{datatype}} 更改为 {{{datatypeWithEnum}}} 。此更改将支持使用泛型的所有属性,例如List。
第二个是将参数分配给局部变量。
将这些更改直接应用于pojo.mustache或覆盖它们时,结果是生成了可用的构造函数。这适用于swagger和openapi生成器。
public {{classname}}( {{#vars}} {{{datatypeWithEnum}}} {{baseName}}{{^-last}},{{/-last}} {{#-last}}){
{{#vars}}
this.{{baseName}} = {{baseName}};
{{/vars}}
}{{/-last}}{{/vars}}