枚举值获取?

Enum value fetch?

如何从指定的 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);
        }

    }

}

使用 Enum.valueOf(Class<T>, String) 或隐式定义的 valueOf(String) 方法,其中 returns 具有给定名称的常量。

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