Swagger-Codegen:Getter返回字符串而不是枚举值

发布于 2025-02-01 08:00:01 字数 1657 浏览 4 评论 0原文

我使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文