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

  • 相关阅读:
    springboot跨域解决
    python实现LRUCache
    oracle整库统计库表数据量--存储过程
    oracle整库统计库表各个字段数据最大长度--存储过程
    mysql数据库初始化脚本分组批量执行
    maven profile 的作用
    配置中包含maven属性,在idea中本地启动无法正常获取配置
    个人随笔
    Java接口interface field及method
    如何将.net core项目部署到IIS上?
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2150046.html
Copyright © 2011-2022 走看看