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

    转自:http://www.cnblogs.com/cuizhf/archive/2011/08/22/2150046.html
    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;
    
    
    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<</span>String, Blah> stringToEnum = new HashMap<</span>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;
    
    
    public enum Blah {
        A,
        B,
        C,
        D;
    
        // Implementing a fromString method on an enum type
        private static final Map<</span>String, Blah> stringToEnum = new HashMap<</span>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之间的转换,也可类似处理。

  • 相关阅读:
    小程序中自定义组件
    rem是如何实现自适应布局的?
    基于vue前端状态管理模式
    vue项目使用keep-alive的作用
    JS移动元素的方法
    es6 promise then对异常处理的方法
    async/await 中await接收的promise的问题
    angularjs ngRoute demo
    angularjs $watch demo
    Html5 Geolocation demo
  • 原文地址:https://www.cnblogs.com/sunxucool/p/2800021.html
Copyright © 2011-2022 走看看