嗨我知道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