我看到一些程序員在枚舉結構函數中使用fromValue。這是什麼目的,如果我們可以使用valueOf?例如,我發現這樣的事情:使用fromValue函數而不是valueOf,java枚舉有什麼好處?
public static FooEnum fromValue(String v) {
return valueOf(v);
}
我看到一些程序員在枚舉結構函數中使用fromValue。這是什麼目的,如果我們可以使用valueOf?例如,我發現這樣的事情:使用fromValue函數而不是valueOf,java枚舉有什麼好處?
public static FooEnum fromValue(String v) {
return valueOf(v);
}
你可能有一個無效的字符串值:
public static FooEnum fromValue(String v) {
try {
return valueOf(v);
} catch (InvalidArgumentException e) {
return FooEnum.UNKNOWN;
}
}
謝謝,現在很清楚。這意味着爲了可讀性的目的,所討論的方法'fromValue'是毫無意義的或添加的。 –
想想一個具有不同值的字符串屬性,然後是枚舉的名稱。
public enum FooEnum {
A("foo"),
B("bar"),
;
...
}
然後你需要這樣的方法來查找屬性值。 另見本answer
我明白了,但我對它是否有更深的含義感興趣。我的意思是編碼慣例,可讀性等。 –
啊好的。我們像提到的@daniu一樣使用它來處理無效值並拋出一個表明開發人員失敗的異常。所以它更像是一個內部conding約定。 –
如果實現是這樣那麼我們只能猜測的 - 我的猜測是,它的意思是更具可讀性(我不是說它是)。 – Thomas
是的,我從來沒有見過這個,我不明白這一點。 – christopher
謝謝,我是編程新手,所以我對此感到困惑。 –