枚举值取值?

时间:2015-04-04 07:10:04

标签: java enums

如何从指定的tag []数组中动态获取枚举值。

public enum TagName {

    NAME("ASTON", null), ADDRESS("WER", null);

    private String tagNameValue;
    private String defaultValue;

    public String getTagNameValue() {
        return tagNameValue;
    }

    TagName(String header, String defaultValue) {
        this.tagNameValue = header;
        this.defaultValue = defaultValue;
    }

    public String getDefaultValue() {
        return defaultValue;
    }

}

public class MainExe {

    public static void main(String[] args) {
        String tag[] = { "NAME", "ADDRESS" };

        String data = TagName.ADDRESS.getDefaultValue();
        System.out.println(data);
        // i want to fetch the value from the enum based on the tag value passed
        // dynamically.

        // something like this
        for (int i = 0; i < tag.length; i++) {

            String data = TagName.tag[i].getDefaultValue();
            System.out.println(data);
        }

    }

}

1 个答案:

答案 0 :(得分:1)

使用Enum.valueOf(Class<T>, String)或隐式定义的valueOf(String)方法,该方法返回给定名称的常量。

for (int i = 0; i < tag.length; i++) {
    String data = TagName.valueOf(tag[i]).getDefaultValue();
    System.out.println(data);
}