2014-03-03 26 views
0

我是新来的java,现在我正在尝试查看是否有可能从它分配的字符串值获取ENUM。如何从字符串值获取ENUM - JAVA

考虑例如我有此下面ENUM(ⅰ已经纠正了,得到完整结构)

public enum Signal{ 
    RED("stop"), GREEN("start"), ORANGE("slow down"); 

    private String value; 

    private Signal(String value) { 
     this.value = value; 
    } 

    public String getValue() { 
     return value; 
    } 
} 

是否有可能确定ENUM如果我有被分配给它的值。如果我有“停止”,这是可能得到红色

当我在互联网搜索“价值”被讨论,这不是我所需要的,因为它有助于不同的目的。任何参考也将不胜感激。 谢谢您的阅读!

+3

您必须编写自己的方法。 –

+0

查看第二个答案[here](http://stackoverflow.com/questions/604424/java-convert-string-to-enum)。 –

+1

您的枚举定义无效;你的值都使用一个你没有定义的构造函数。 – ruakh

回答

2
public enum Signal{ 
    ... 

    public static Signal byValue(String value) { 
    Singal[] signales = Signal.getEnumConstants(); 
    for (Signal s:signals) { 
     if (s.getValue().equals(value) { 
     return s; 
     } 
    } 
    } 
} 
+2

方法不应该是静态的? –

+2

byValue应该是静态的 – JamesB

+0

我也会说使用values()而不是getEnumConstants()是整洁的。 – JamesB