猿问

如何从Java中的字符串值中获取枚举值?

如何从Java中的字符串值中获取枚举值?

如果我有一个枚举,那就是.

public enum Blah {
    A, B, C, D}

我希望找到字符串的枚举值,例如"A"那就是Blah.A..怎么可能这样做呢?

Enum.valueOf()我需要的方法?如果是这样,我将如何使用这个?


呼如林
浏览 4046回答 3
3回答

杨__羊羊

是,Blah.valueOf("A")会给你Blah.A.注意,名称必须是精确性匹配,包括案件:Blah.valueOf("a")和Blah.valueOf("A ")双掷IllegalArgumentException.静态方法valueOf()和values()都是在编译时创建的,并且没有出现在源代码中。不过,它们确实出现在Javadoc中;例如,Dialog.ModalityType显示了这两种方法。

慕斯王

如果文本与枚举值不相同,另一种解决方案是:public enum Blah {     A("text1"),     B("text2"),     C("text3"),     D("text4");     private String text;     Blah(String text) {         this.text = text;     }     public String getText() {         return this.text;     }     public static Blah fromString(String text) {         for (Blah b : Blah.values()) {             if (b.text.equalsIgnoreCase(text)) {                 return b;             }         }         return null;     }}
随时随地看视频慕课网APP

相关分类

Java
我要回答