我有一個枚舉,其中每個枚舉映射到一個整數,與枚舉的ordinal()
不匹配。現在我需要一種將整數轉換爲枚舉的方法。我認爲有兩個選擇:Java和枚舉的枚舉方法的命名int
具有獨特名稱的新方法,如(地道?):
超載的valueOf()
public static MyEnum fromInt(int i) {}
:
public static MyEnum valueOf(int i) {}
是都可以,或者其中一個顯然不好或好?
提供這兩個是否好或壞?如果是的話,他們應該是相同的還是行爲細微差別的,例如,如果i
不是有效值,則表現不同。
或者是否有第三個選項比這兩者都優越?
我正在尋找一個簡短的答案,告訴我們應如何做到符合已建立的Java編碼實踐。枚舉將被其他人使用並保持很長時間。請回答一些權威性的參考資料,或者強烈的經驗,而不是純粹的意見或感覺什麼更好。另外,這個問題不是關於如何實現這個方法,它只是關於它應該如何命名,以及如果名稱取決於確切的行爲,最符合「Java世界」的其餘部分。
不要超載valueOf() - 它會混淆人類。工廠方法是要走的路。 – Bohemian