【问题标题】:How to convert String to Enum, changing to capital before that? [duplicate]如何将字符串转换为枚举,在此之前更改为大写? [复制]
【发布时间】:2016-10-19 23:00:06
【问题描述】:

我有一个枚举

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

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

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

Regular.valueOf(regular.toUpperCase());

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

【问题讨论】:

    标签: java enums


    【解决方案1】:

    不,没有办法。

    但是,一旦您创建了另一个方法 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());
        }
    }
    

    【讨论】:

    • 不错。只是重载函数。我怎么能错过考虑呢!
    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2016-07-30
    • 2012-12-07
    相关资源
    最近更新 更多