posts - 495,comments - 227,trackbacks - 0
          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;

          /**
           *
           * @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之間的轉換,也可類似處理。

           

          posted on 2012-11-07 14:54 SIMONE 閱讀(5956) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 长阳| 江口县| 苏尼特左旗| 舒兰市| 巴楚县| 衡山县| 枞阳县| 商南县| 义乌市| 临朐县| 恩施市| 保定市| 淅川县| 桃江县| 徐闻县| 三原县| 什邡市| 宜章县| 尤溪县| 南宫市| 英超| 九寨沟县| 通江县| 南召县| 乐东| 永川市| 开封县| 固阳县| 四会市| 奉贤区| 甘肃省| 绥化市| 延安市| 搜索| 界首市| 新密市| 左贡县| 大兴区| 遵化市| 鄂托克旗| 扶绥县|