java - 如何将字符串转换为枚举,然后先转换为大写?

标签 java enums

我有一个枚举,其中

public enum Regular {
    NONE,
    HOURLY,
    DAILY,
    WEEKLY;

    public String getName() {
        return this.name().toLowerCase();
    }
}

当我们得到它时,我们可以将它转换为小写。但如果我要从 String 转换为 Enum,我必须明确记住设置 toUpperCase()

Regular.valueOf(regular.toUpperCase());

有没有办法在我的 Enum 类中定义它,它会自动将所有字符串转换为大写以进行比较?

最佳答案

不,没有办法做到这一点。

但是,一旦您创建另一个方法 String getName() 来“覆盖”name() 的默认实现。我认为您必须对 Regular valueOf() 执行相同的操作,即创建另一个方法 Regular valueOfByName()

public enum Regular {
    NONE,
    HOURLY,
    DAILY,
    WEEKLY;

    public String getName() {
        return this.name().toLowerCase();
    }

    public static Regular valueOfByName(String name){
        return valueOf(name.toUpperCase());
    }
}

关于java - 如何将字符串转换为枚举,然后先转换为大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40142851/

相关文章:

C++11 在类中放置枚举类的重载运算符

c - 初始化由 C 中的枚举索引的字符串数组

java - 使用Spring RestTemplate时如何避免[]的双重编码?

c - 在函数调用中向枚举添加 uint 的风险

java - Android Java File.delete() 删除文件,然后它自己取消删除

java - key 斗篷模仿

java - Enum Switch 语句 Java 6 "Default"大小写

c - 如何在C语言中正确使用位运算

java - 在 Android Studio 中将 Scala 与 Java 结合使用

java - 使用 JPA 注释和具有 varchar 长度的 Map<String,String>