当前位置: 首页 > 知识库问答 >
问题:

如何正确配置枚举?

司寇嘉茂
2023-03-14

我正在Java Spring/Hibernate中使用Swagger-UI。Swagger UI版本是2。

我很难使用枚举。

@Enumerated(EnumType.STRING)
@Column(name = "gender")
@Access(AccessType.FIELD)
private Gender gender;
public enum Gender {

    M("Male"), F("Female");

    private String displayValue;

    private Gender(String displayValue) {
        this.displayValue = displayValue;
    }

    @Override
    public String toString() {
        return displayValue;
    }

    public String getDisplayValue() {
        return displayValue;
    }

    public String getName() {
        return name();
    }   
}
<select name="gender">
<option value="M">Male</option>
<option value="F">Female</option>
</select>

共有1个答案

湛骏祥
2023-03-14

您需要通过实现接口springfox.documentation.service.AllowableValues来创建自定义类(AllowableMapValues),该接口将返回Map类型而不是列表类型。(参见类springfox.documentation.service.AllowableListValues以获得参考)。

之后,您需要在SpringFox.documentation.schema.enums类中使用静态方法,方法是隐藏静态方法(AllowableValuesAllowableValues(class type)),返回新创建的AllowableMapValues

public static AllowableValues allowableValues(Class<?> type) {
    if (type.isEnum()) {
      Map<String, String> enumValues = getEnumMapValues(type);
      return new AllowableMapValues(enumValues, "MAP");
    }
    return null;
  }

其中<“k”,“v”>对类似于<“m”,“mene”>

您应该创建静态方法GetEnummapValues,其工作方式与Enums类中的GetEnumValues方法相同。

现在swagger将被生成为所需的类型。

@JsonValue  
public String enumName() {
    return name();
}

你可以试试上面的方法,如果它解决了问题

 类似资料:
  • 我试图完成本教程,但我认为在配置网页时遇到了一些问题。我正在一步一步地制作教程,但它不起作用。。 错误]无法执行目标com。github。eirslett:frontend maven插件:1.10.3:project shop上的webpack(webpack生成):无法运行任务:“webpack”。js'失败了。组织。阿帕奇。平民执行官。ExecuteException:进程已退出,但出现错误

  • 我有一个身份提供程序,我希望针对使用SAML 2.0预形成SSO 我正在使用https://github.com/KentorIT/authservices IdP配置是: Entity Id:https://xxx.yyy.com/auth 断言消费者服务URL:超文本传输协议://zzz: 1111/AuthServices/Acs 我创建了一个自签名证书并将其添加到本地项目中。 本地配置:

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为JSON保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问。 以下是我目前使用Gson的方式: 以下是我当前尝试使用时收到的错误消息: 是我在开头

  • 我的gradle项目结构如下所示: 对于子项目,将使用引用gradle任务。 有什么想法让它正常工作吗?

  • 我正在尝试建立一个基本的Gradle项目。我的构建。gradle文件如下。我一直得到下面的错误。我不明白,因为你可以在这里找到插件。。。我想我的目标是:https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin 更新:如果我注释掉Kotlin行,Spring Boot插件也会发生同样的事情。这不仅仅针对K

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为Json保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问 以下是我目前使用Gson的方式: 这是当我尝试使用时,我当前收到的错误消息: 是我一开