java - yaml 等于 equalsIgnoreCase
问题描述
我在创建枚举值的文件中有 api.yaml
Language:
type: string
enum:
- ar
- en
- fr
下面生成的文件,在 fromValue 方法中,当我手动更改它并重新保存 api.yaml 文件时,我需要更改等于 equalsIgnoreCase 更改消失了
public enum Language {
AR("ar"),
EN("en"),
FR("fr");
private String value;
Language(String value) {
this.value = value;
}
@Override
@JsonValue
public String toString() {
return String.valueOf(value);
}
@JsonCreator
public static Language fromValue(String text) {
for (Language b : Language.values()) {
if (String.valueOf(b.value).equals(text)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + text + "'");
}
}
解决方案
枚举总是对生成器不区分大小写。不过有几个选择。您可以在 api 定义中使用正则表达式模式而不是枚举:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/EnumUtils.html
或者您可以在 Spring 中查看这些属性,但我不确定它是否有助于您生成的代码:
spring.jackson.mapper.accept-case-insensitive-enums=true
尽管这仅适用于自动反序列化的数据。
推荐阅读
- python - 根据它们在python中的最后两个字符来分隔单词
- firebase - 如何录制语音并将它们存储到颤动的firebase存储中?
- flutter - 生成错误不适用于 AsyncBuilder
- kubernetes - Kubernetes 读取 pod 日志 API 中的 `previous` 参数的作用是什么?
- c - mkfifo 不制作 FIFO 特殊文件
- c++ - 什么是 C++ 中的“struct* struct newStruct(int somedata) { }”语法
- javascript - DOM.style.display 没有按预期工作。无法隐藏 div
- r - 面板数据中实体值的平均值
- php - phpseclib - 设置 IV 修改图像数据 URI
- jib - 使用 JIB 构建 Spring Boot fat JAR