#java #eclipse #refactoring #code-generation #eclipse-jdt
#java — язык #затмение #рефакторинг #генерация кода #eclipse-jdt #java #eclipse
Вопрос:
В Eclipse, если я попытаюсь применить рефакторинг «Генерировать методы делегирования» к классу Java следующим образом:
class Foo implements Bar {
Bar bar;
}
Eclipse не генерирует @Override
аннотации для сгенерированных методов. Это ошибка или для этого есть веская причина?
Ответ №1:
Это не отвечает на ваш вопрос о том, почему не добавляется @Override
аннотация при генерации методов делегирования, но вы можете добавить действие сохранения, которое сделает это за вас при сохранении файла. Перейдите к
Window -> Preferences -> Java -> Editor -> Save Actions
Обратите внимание на записи для @Override
в Additional actions
разделе. Если у вас их не хватает, нажмите Configure...
кнопку, выберите Missing Code
вкладку и выберите эти параметры:
Если вы хотите массово добавлять аннотации ко всему проекту или пакету, выберите проект или пакет (или несколько), щелкните правой кнопкой мыши и выберите Исходный код> Очистить…
В диалоговом окне очистки вы можете настроить пользовательский профиль, который включает добавление отсутствующих аннотаций.
Ответ №2:
Нет веской причины, но это не «ошибка», сама по себе; просто недостаток. Вероятно, рефакторинг просто старше, чем @Override
— старше аннотаций в целом, конечно — и никогда не обновлялся.
Комментарии:
1. Спасибо, Эрнест, я сообщил об этом в Bugzilla из Eclipse.
2. Отчет Bugzilla можно найти здесь .
Ответ №3:
Иногда настройки в Window -> Preferences -> Java -> Editor -> Save Actions вызывают нежелательные эффекты, особенно для XML-файлов при разработке приложений для Android (был там, испытал это). ИМХО, лучшее решение — использовать 1 или щелкнуть правой кнопкой мыши по пакету (или классу и т.д.), А затем выбрать Source -> Очистить, чтобы добавить все ваши недостающие аннотации @Override.