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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM