zoukankan      html  css  js  c++  java
  • enum与int、String之间的转换

    enum<->int

    enum -> int: int i enumType.value.ordinal();
    int -> enum: enumType b= enumType.values()[i];

    enum<->String

    enum -> String: enumType.name()

    String -> enum: enumType.valueOf(name);

     --------------------------------------------------------------------------

    http://stackoverflow.com/questions/604424/java-enum-converting-string-to-enum

    有时间整理测试一下这个帖子中的内容,同事参考《Effective Java中文版第2版》第30条内容,更新本帖。

    ---------------------------------------------------------------------------

    下面是Enum和字符串类型转化的例子。

    第一个例子:字符串和枚举值不相同,注意覆盖toString方法。

    import java.util.HashMap;
    import java.util.Map;

    /**
     *
     * @author admin
     
    */
    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;
        }
        
        
    // Implementing a fromString method on an enum type
        private static final Map<String, Blah> stringToEnum = new HashMap<String, Blah>();
        
    static {
            
    // Initialize map from constant name to enum constant
            for(Blah blah : values()) {
                stringToEnum.put(blah.toString(), blah);
            }
        }
        
        
    // Returns Blah for string, or null if string is invalid
        public static Blah fromString(String symbol) {
            
    return stringToEnum.get(symbol);
        }

        @Override
        
    public String toString() {
            
    return text;
        }
    }

     第2个例子,字符串和枚举值相同,这个更为简单。

    import java.util.HashMap;
    import java.util.Map;

    /**
     *
     * @author admin
     
    */
    public enum Blah {
        A,
        B,
        C,
        D;

        
    // Implementing a fromString method on an enum type
        private static final Map<String, Blah> stringToEnum = new HashMap<String, Blah>();
        
    static {
            
    // Initialize map from constant name to enum constant
            for(Blah blah : values()) {
                stringToEnum.put(blah.toString(), blah);
            }
        }
        
        
    // Returns Blah for string, or null if string is invalid
        public static Blah fromString(String symbol) {
            
    return stringToEnum.get(symbol);
        }
    }

     至于整形和Enum之间的转换,也可类似处理。

  • 相关阅读:
    在CSDN上看到的一个过滤方法,感觉还不错
    根据Model有值的自动生成添加的Sql语句
    IsNullOrEmpty和s == null || s.Length == 0哪个快
    常用的sql server规范
    SQL中的去重操作
    easyui的验证
    easyui的样式easyui-textbox的一个bug
    当MVC4无法跳转时
    用iframe框架,登录过期后登录框在框架里加载的问题
    mysql如何给字母数字混合的字段排序?
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2150046.html
Copyright © 2011-2022 走看看