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之间的转换,也可类似处理。

  • 相关阅读:
    js 整站模式窗口打开
    WebDev.WebServer 学习
    AjaxPro.2.dll基本使用
    jQuery.get(url,[data],[callback])
    ASP.NET CheckBoxList复选框
    Win7开发系列: windows服务操作基础
    .NET Remoting开发系列:(三) Remoting服务发布方式
    mysql 视图操作和存储过程
    Flash Lite1.1错误代码表
    myeclipse svn 清除缓存用户和密码
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2150046.html
Copyright © 2011-2022 走看看