我必须为所有开关情况定义枚举。我不知道在涉及位置时如何关联枚举。以下是我的代码:

public enum Choice {
    A, B, C
}

public void selectItem(int position) {
    switch (position) {
        // Dashboard
        case 0:
        break;
        case 1:
        break;
    }
}

最佳答案

您需要将int位置转换为相应的枚举。默认情况下,每个枚举值都有一个序号。在choice枚举中,a具有序数零等。

public class TestMain {

  public enum Choice {
    A, B, C
  }

  public static void main(String[] args) {
    selectItem(0);
  }

  public static void selectItem(int position) {
    Choice selectedChoice = null;
    selectedChoice = getChoiceFromPosition(position, selectedChoice);

    switch (selectedChoice) {
      //Dashboard
      case A:
        System.out.println(selectedChoice.ordinal());
        break;
      case B:
        break;
      case C:
        break;
    }
  }

  private static Choice getChoiceFromPosition(int position, Choice selectedChoice) {
    for(Choice c : Choice.values()){
      if(c.ordinal() == position) {
        selectedChoice =c;
      }
    }
    return selectedChoice;
  }
}

10-07 23:06