Существует ли CTRL+space - как способ "автосоздать" случай переключателя вокруг данного Перечисления Java в Eclipse? Я хотел бы тупик со всеми Перечислимыми случаями...
Он был в Затмении целую вечность. По общему признанию, это немного сложно найти. Сначала начните с
switch (myEnum) {
}
. В этот момент ваш курсор обычно находится внутри блока операторов {}
. Вам нужно вернуть ошибку в строку с помощью ключевого слова переключателя
, нажать Ctrl + 1 и выбрать Добавить отсутствующие операторы case . Таким образом будет вставлен любой возможный регистр
.
Вы могли бы интуитивно ожидать, что эта опция будет доступна внутри блока операторов {}
, но нет.
Обновление : поскольку Eclipse Kepler (или, возможно, уже Juno, но он настолько нестабилен, что я никогда не использовал его), эта опция наконец доступна через Ctrl + 1 также внутри блока операторов.
Вы можете добавить свои собственные шаблоны кода, используя: Windows->Preferences->Java->Editor->Templates.
После добавления шаблона кода, введите достаточное количество символов имени шаблона, чтобы сделать его уникальным; введите CTRL+Space; и ваш определенный код заменит символы имени шаблона.
Шаблон для switch предопределен в Eclipse Galileo. sw+CTRL+Space должны дать вам оператор switch. Возможно, вам придется адаптировать существующий шаблон, чтобы получить комбинацию switch-enum.
Я не знаю, можно ли сделать это в виде шаблона, потому что шаблону придется знать, какой тип перечисления вы используете. Но вы можете написать небольшой скрипт, который будет печатать утверждение для вас, а затем просто скопировать его вывод в ваш исходный файл.
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
}