Swagger-Codegen:Getter返回字符串而不是枚举值
我使用Swagger-Codegen-Maven-Plugin生成Java类,并在实体类字段 /成员的GETTER上遇到麻烦,哪种类型是枚举。直到版本2.2.3 Getter返回枚举值,但所有版本都上方返回Getter,只是返回字符串。
所讨论的字段看起来像“ Swagger”文件中的以下内容:
"status": {
"type": "string",
"enum": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
]
},
为版本生成的代码,直到2.2.3:
@XmlType(name="StatusEnum")
@XmlEnum(String.class)
public enum StatusEnum {
@XmlEnumValue("A") A(String.valueOf("A")), @XmlEnumValue("B") B(String.valueOf("B")), @XmlEnumValue("C") C(String.valueOf("C")), @XmlEnumValue("D") D(String.valueOf("D")), @XmlEnumValue("E") E(String.valueOf("E")), @XmlEnumValue("F") F(String.valueOf("F")), @XmlEnumValue("G") G(String.valueOf("G"));
private String value;
// omitted further details ...
}
/**
* Get status
* @return status
**/
public StatusEnum getStatus() {
return status;
}
public void setStatus(StatusEnum status) {
this.status = status;
}
所有内容> 2.2.3(尝试2.3.0,2.4.0,3.0.34):
public enum StatusEnum {
A("A"),
B("B"),
C("C"),
D("D"),
E("E"),
F("F"),
G("G");
private String value;
// omitted further details ...
}
/**
* Get status
* @return status
**/
@JsonProperty("status")
public String getStatus() {
if (status == null) {
return null;
}
return status.getValue();
}
public void setStatus(StatusEnum status) {
this.status = status;
}
如何配置发电机插件以获取具有版本>的相同方法签名2.2.3像以前一样?将在任何地方都称为“枚举键入成员的Getter”的现有项目中更改代码。
I use the swagger-codegen-maven-plugin to generate Java classes and have trouble with the getter of an entity class field / member which type is an enum. Until version 2.2.3 the getter returns the enum value but with all versions above the getter just returns String.
The field in question looks like follows in the swagger file:
"status": {
"type": "string",
"enum": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
]
},
Code generated for version until 2.2.3:
@XmlType(name="StatusEnum")
@XmlEnum(String.class)
public enum StatusEnum {
@XmlEnumValue("A") A(String.valueOf("A")), @XmlEnumValue("B") B(String.valueOf("B")), @XmlEnumValue("C") C(String.valueOf("C")), @XmlEnumValue("D") D(String.valueOf("D")), @XmlEnumValue("E") E(String.valueOf("E")), @XmlEnumValue("F") F(String.valueOf("F")), @XmlEnumValue("G") G(String.valueOf("G"));
private String value;
// omitted further details ...
}
/**
* Get status
* @return status
**/
public StatusEnum getStatus() {
return status;
}
public void setStatus(StatusEnum status) {
this.status = status;
}
Everything > 2.2.3 (tried 2.3.0, 2.4.0, 3.0.34):
public enum StatusEnum {
A("A"),
B("B"),
C("C"),
D("D"),
E("E"),
F("F"),
G("G");
private String value;
// omitted further details ...
}
/**
* Get status
* @return status
**/
@JsonProperty("status")
public String getStatus() {
if (status == null) {
return null;
}
return status.getValue();
}
public void setStatus(StatusEnum status) {
this.status = status;
}
How to configure the generator plugin to get the same method signature with version > 2.2.3 as before? Would be a lot of work to change the code in the existing projects everywhere where it calls getter of enum typed members.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论