2016-10-19 7 views
0

私は、我々はそれを得るとき、それを小文字に変換することができ文字列をEnumに変換する方法、その前に大文字に変更しますか?

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

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

列挙型を持っています。しかし、私は、文字列から列挙型に変換した場合、私は明示的にtoUpperCase()

Regular.valueOf(regular.toUpperCase()); 

を設定するために覚えていることは、自動それを比較するために大文字にすべての文字列を変換します私のEnumクラスでこれを定義する方法は、あります?

答えて

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()); 
    } 
} 
+0

ニース。関数をオーバーロードするだけです。どうすればそれを見逃すことができます! – Elye

関連する問題