Как преобразовать мой код перечисления в переключатель - PullRequest
0 голосов
/ 03 февраля 2019

В моем классе CustomerTypeApp мне нужно изменить метод getDiscountPercent, чтобы использовать переключатель вместо цепочки операторов if.Вот версия оператора if:

public static double getDiscountPercent(CustomerType ct) {
        double discountPercent = 0;
        if (ct == CustomerType.RETAIL) {
            discountPercent = 0.156;
        } else if (ct == CustomerType.TRADE) {
            discountPercent = 0.30;
        } else if (ct == CustomerType.COLLEGE) {
            discountPercent = 0.20;
        }
        return discountPercent;
    }
}

Ниже приведен оператор переключения, который я пробовал, но который получает ошибку:

Метка регистра переключателя перечисления должна быть безусловным именемконстанты перечисления

  double discountPercent = 0;

  switch(ct) {
      case CustomerType.RETAIL :
        discountPercent = 0.156;
        break;
     case CustomerType.TRADE :
        discountPercent = 0.30;
        break;
     case CustomerType.COLLEGE :
        discountPercent = 0.20;
        break;
     default :
        discountPercent = 0;
  }
  return discountPercent;

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Попробуйте: (Это очень просто)

public static double getDiscountPercent(CustomerType ct) {

      double discountPercent = 0;

      switch(ct) {
         case CustomerType.RETAIL :
            discountPercent = 0.156;
            break;
         case CustomerType.TRADE :
            discountPercent = 0.30;
            break;
         case CustomerType.COLLEGE :
            discountPercent = 0.20;
            break;
         default :
            discountPercent = 0;
      }
      return discountPercent;

   }
0 голосов
/ 03 февраля 2019

Вы хотите переключиться на переменную ct

switch(ct) {
        case CustomeType.retail:
            /*Command*/
            break;
        case CustomerType.TRADE:
            /*Command*/
            break;
        default:
            /*else*/
}

Если вам нужна дополнительная помощь, прочитайте эти документы Java

...