說我有這個枚舉類型:如何處理字符串 - >枚舉轉換的非法參數異常?
public enum Type { VALUEA, VALUEB };
並希望從字符串轉換到該枚舉,使用的valueOf()。 如何處理這種情況,使其返回默認值?
Type.valueOf("NOTVALID");
說我有這個枚舉類型:如何處理字符串 - >枚舉轉換的非法參數異常?
public enum Type { VALUEA, VALUEB };
並希望從字符串轉換到該枚舉,使用的valueOf()。 如何處理這種情況,使其返回默認值?
Type.valueOf("NOTVALID");
public Type getMyEnum(String value){
Type expectedType;
try {
expectedType = Type.valueOf(value);
} catch(IllegalArgumentException ex){
expectedType = Type.YOUR_DEFUALT_ONE;
}
return expectedType;
}
但是,您絕對不應該使用捕捉控件來控制程序流!這是一個例外,它應該像那樣使用! – Blindworks
看看這個:https://www.stubbornjava.com/posts/java-enum-lookup-by-name-or-field-without-throwing-exceptions – Blindworks
作爲枚舉值是爲你必須使用的名稱()方法的字符串檢索。
enum Type {
VALUEA,
VALUEB;
public static Type valueOfOrDefault(String value) {
for(Type type : getClass().getEnumConstants()) {
if(type.name().equalsIgnoreCase(value)) {
return type;
}
}
return Type.VALUEA;
}
}
'想從字符串切換到這個枚舉,請澄清更多的你想要什麼? –
當傳遞的String對象沒有相應的枚舉類型時,我希望valueOf()返回一個默認值 – Phate