Eclipse: автозавершение Перечисления Java случая переключателя

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

55
задан Maroloccio 12 September 2013 в 09:57
поделиться

3 ответа

Он был в Затмении целую вечность. По общему признанию, это немного сложно найти. Сначала начните с

switch (myEnum) {

}

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

alt text

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


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

enter image description here

123
ответ дан 7 November 2019 в 07:11
поделиться

Вы можете добавить свои собственные шаблоны кода, используя: Windows->Preferences->Java->Editor->Templates.

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

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

0
ответ дан 7 November 2019 в 07:11
поделиться

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

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}");
  }
}

Output of 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
}
4
ответ дан 7 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: