Eclipse: Java Enum авто-завершение регистра переключателя - PullRequest
55 голосов
/ 12 апреля 2010

Существует ли CTRL + пробелоподобный способ "автоматического конструирования" регистра переключателей вокруг заданного Java Enum в Eclipse? Я хотел бы заглушку со всеми случаями Enum ...

Ответы [ 3 ]

120 голосов
/ 12 апреля 2010

Это было в Затмении целую вечность. По общему признанию только немного трудно найти. Первый старт с

switch (myEnum) {

}

В этот момент ваш курсор обычно находится внутри блока операторов {}. Вам необходимо вернуть курсор в строку с ключевым словом switch и нажать Ctrl + 1 и выбрать Добавить пропущенные операторы case . Таким образом, он вставит любой возможный case.

alt text

Вы бы интуитивно ожидали, что эта опция будет доступна внутри также и в блоке операторов {}, но нет.


Обновление : начиная с Eclipse Kepler (или, возможно, уже Juno, но он настолько нестабилен, что я никогда не использовал его), эта опция окончательно доступна через Ctrl + 1 внутри блока операторов.

enter image description here

4 голосов
/ 12 апреля 2010

Я не знаю, возможно ли сделать это как шаблон, потому что шаблон должен был бы знать, какой тип перечисления вы использовали. Но вы могли бы написать небольшой скрипт для распечатки заявления для вас, а затем просто скопировать его вывод в ваш исходный файл.

public class SwitchWriter {
  public static void printSwitchStatement(String varName, Class<?> E) {
    System.out.format("switch(%s) {\n", varName);
    for (Object o : E.getEnumConstants()) {
      System.out.format("case %s:\n  // TODO: Auto-generated switch statement stub\n  break;\n", o);
    }
    System.out.println("default:\n  // TODO: Auto-generated switch statement stub\n}");
  }
}

Выход SwitchWriter.printSwitchStatement("action", java.awt.Desktop.Action.class):

switch(action) {
case OPEN:
  // TODO: Auto-generated switch statement stub
  break;
case EDIT:
  // TODO: Auto-generated switch statement stub
  break;
case PRINT:
  // TODO: Auto-generated switch statement stub
  break;
case MAIL:
  // TODO: Auto-generated switch statement stub
  break;
case BROWSE:
  // TODO: Auto-generated switch statement stub
  break;
default:
  // TODO: Auto-generated switch statement stub
}
0 голосов
/ 12 апреля 2010

Вы можете добавить свои собственные шаблоны кода, используя: Windows-> Настройки-> Java-> Редактор-> Шаблоны.

После добавления шаблона кода введите достаточно символов имени шаблона, чтобы сделать его уникальным; введите CTRL + пробел; и ваш определенный код заменит символы имени шаблона.

Шаблон для переключения предопределен в Eclipse Galileo. SW + CTRL + пробел должен дать вам оператор переключения. Возможно, вам придется адаптировать существующий шаблон, чтобы получить комбинацию switch-enum.

...