首页 > Java > 我想找到字符串的枚举值,例如.怎么可能做到这一点?”A”Blah.A

我想找到字符串的枚举值,例如.怎么可能做到这一点?”A”Blah.A

上一篇 下一篇

假设我有一个枚举,它只是

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

我想找到字符串的枚举值,例如.怎么可能做到这一点?"A"Blah.A

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

分割线

网友回答:

如果文本与枚举值不同,则另一种解决方案:

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;
    }
}

分割线

网友回答:

是的,会给你.Blah.valueOf("A")Blah.A

请注意,名称必须完全匹配,包括大小写:,并且都抛出 .Blah.valueOf("a")Blah.valueOf("A ")IllegalArgumentException

静态方法和在编译时创建,不会出现在源代码中。不过,它们确实出现在 Javadoc 中;例如, 显示了这两种方法。valueOf()values()Dialog.ModalityType

分割线

网友回答:

使用Joshua Bloch的模式,Effective Java

(为简洁起见,进行了简化)

enum MyEnum {
    ENUM_1("A"),
    ENUM_2("B");

    private String name;

    private static final Map<String,MyEnum> ENUM_MAP;

    MyEnum (String name) {
        this.name = name;
    }

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

    // Build an immutable map of String name to enum pairs.
    // Any Map impl can be used.

    static {
        Map<String,MyEnum> map = new ConcurrentHashMap<String, MyEnum>();
        for (MyEnum instance : MyEnum.values()) {
            map.put(instance.getName().toLowerCase(),instance);
        }
        ENUM_MAP = Collections.unmodifiableMap(map);
    }

    public static MyEnum get (String name) {
        return ENUM_MAP.get(name.toLowerCase());
    }
}

另请参阅:

Oracle Java 示例使用枚举和实例映射

枚举类型中静态块的执行顺序

如何从字符串值中查找 Java 枚举

模板简介:该模板名称为【我想找到字符串的枚举值,例如.怎么可能做到这一点?”A”Blah.A】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 153次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-15
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
单页式简历模板 html5 企业网站 微信模板 响应式 微信素材 微信公众平台 微信图片 微信文章 自适应
您可能会喜欢的其他模板