使用枚举名称获取常量

时间:2017-09-10 06:40:18

标签: java enums

有时我很困惑我是否应该使用枚举名来获取枚举中定义的常量。下面的代码和我应该使用枚举名称来获取常量之间有什么区别?

switch(accountType) {
    case ZERO_BALANCE:
        break;
    case CREDIT_BALANCE:
        break;
    case DEBIT_BALANCE:
        break;
}

if(accountType == MenuOption.ZERO_BALANCE)
  else if(accountType == MenuOption.CREDIT_BALANCE)
     else if(accountType == MenuOption.DEBIT_BALANCE);

2 个答案:

答案 0 :(得分:3)

来自java nutsandbolts(强调我)

  

决定是否使用 if-then-else 语句或开关语句   基于可读性和语句的表达式   测试即可。 if-then-else语句可以基于测试表达式   值或条件的范围,而switch语句测试   表达式仅基于单个整数,枚举值或   字符串对象。

答案 1 :(得分:3)

除非

,否则您需要MenuOption.前缀
  • 您已静态导入其常量(在大多数情况下我不建议这样做),
  • 或者您在第一个代码段中引用了switch语句中的常量。