嗨我知道Java很長一段時間,最近我一直深入Java世界。作爲一名經驗豐富的c#開發人員,我發現使用Java enum's很奇怪。 例如,如果我顯示在控制檯的項目,如:什麼是Java最佳實踐來處理枚舉的
public enum AdminOpertionFirstlayer
{MANAGE_SUPPLY,
MANAGE_CUSTOMERS_SERVICE,
ORDERS_MANAGEMENT,
REPORTING_OPRATIONES}
我很難把它們寫下來給用戶,因爲我必須爲了實現這一定義新varible
*AdminOpertionFirstlayer []adminOpertionFirstlayerArr =
AdminOpertionFirstlayer.values();
:
for (int i = 0; i < adminOpertionFirstlayerArr.length; i++) {
String s = String.format("%d. %s",
i+1,
adminOpertionFirstlayerArr[i].toString());
Screen.print(s);
}
AdminOpertionFirstlayer chosen= adminOpertionFirstlayerArr
[(Integer.parseInt(dataIn.readLine()))-1];
但我覺得這是一個不好的做法,聲明對*
- 是否有最佳做法(枚舉擴展是一個...)?
- 有沒有TryParse可用或每次我解析我應該嘗試和趕上?
謝謝
編輯
不這樣做是可以理解和可讀性?
public enum MainMenuOptiones{
ADMIN {public void secondLayerMenu(){
Main.AdminSecondLayerMenu();}},
CUSTOMER{public void secondLayerMenu(){
Main.customerSecondLayerMenu();}},
EXIT{public void secondLayerMenu(){
System.exit(1);}},
UNAPPLICABLE{public void secondLayerMenu(){
Screen.printToScreen("chice doesnt exist try again");}};
abstract public void secondLayerMenu();
}
的phrphes是不是使用所有的開關機構 我可以使用
enumInstance.secondLayerMenu();
不要以變量名的大寫字母開頭。這是令人困惑的,因爲以大寫字母開頭的名字通常是類名。請參見[Java編程語言的代碼約定](http://www.oracle.com/technetwork/java/codeconv-138413.html)。 – Progman 2010-11-27 08:56:39