2013-04-10 2 views
0

Учитывая, что у меня есть следующие финалы:Корпус выключателя для группы входов?

private static final char CLIPPING_LOWER = 'c'; 
private static final char CLIPPING_UPPER = 'C'; 
private static final char RESET_LOWER = 'r'; 
private static final char RESET_UPPER = 'R'; 
private static final char LOAD_LOWER = 'l'; 
private static final char LOAD_UPPER = 'L'; 
private static final char QUIT_LOWER = 'q'; 
private static final char QUIT_UPPER = 'Q'; 

и рассмотрим включение случае:

 public void keyPressed(KeyEvent e) 
     { 
      char usersChoice = e.getKeyChar();  // get the user's choice 
      switch(usersChoice) 
      { 
      case LOAD_UPPER: 
       { 
        userPressedLoad(); 
        break; 
       } 
      case LOAD_LOWER: 
       { 
        userPressedLoad(); 
        break; 
       }     

      case RESET_LOWER: 
       { 
        userPressedReset(); 
        break; 
       } 

      case RESET_UPPER: 
       { 
        userPressedReset(); 
        break; 
       } 

      case CLIPPING_LOWER: 
       { 
        userPressedClipping(); 
        break; 
       } 

      case CLIPPING_UPPER: 
       { 
        userPressedClipping(); 
        break; 
       } 

      case QUIT_UPPER: 
       { 
        userPressedQuit(); 
        break; 
       } 

      case QUIT_LOWER: 
       { 
        userPressedQuit(); 
        break; 
       }     

      default: 
       break; 

      } 

     } 

Можно ли написать случай для обоих c и C в одном блоке (а также r и R ... и т. д.) вместо написания отдельного футляра для c и другого корпуса для C?

ответ

3

Одно решение сгруппировать случаи вместе

case LOAD_UPPER: 
case LOAD_LOWER: 
    userPressedLoad(); 
    break; 

Другим решением является convert the input to uppercase и использовать только заглавные буквы в переключатель заявлении

char usersChoice = Character.toUpperCase(e.getKeyChar()); 

case LOAD_UPPER: 
    userPressedLoad(); 
    break; 
1

Да, как это, например:

case LOAD_UPPER: case LOAD_LOWER: 
{ 
    userPressedLoad(); 
    break; 
} 
Смежные вопросы