Почему Eclipse не добавляет аннотации @Override в рефакторинге "Создать методы делегатов"?

В Eclipse, если я попытаюсь применить рефакторинг "Generate Delegate Methods" к классу Java, например следующее:

class Foo implements Bar {
   Bar bar;
}

Eclipse не генерирует аннотации @Override для сгенерированных методов. Является ли это ошибкой или есть веская причина для этого?

Ответ 1

Нет веской причины, но не "ошибка", как таковая; просто недостаток. Вероятно, рефакторинг просто старше @Override - старше, чем аннотации в целом, конечно, и никогда не обновлялся.

Ответ 2

Это не отвечает на ваш вопрос, почему он не добавляет аннотацию @Override при создании методов делегата, но вы можете добавить действие сохранения, чтобы сделать это для вас при сохранении файла. Перейдите в

Window -> Preferences -> Java -> Editor -> Save Actions

Eclipse Save Actions

Обратите внимание на записи для @Override в разделе Additional actions. Если вам не хватает, нажмите кнопку Configure... и выберите вкладку Missing Code и выберите следующие параметры:

enter image description here

Если вы хотите добавить аннотации к целому проекту или пакету в объем, выберите проект или пакет (или кратность), щелкните правой кнопкой мыши и выберите "Источник" > "Очистить"...

В диалоговом окне "Очистка" вы можете настроить настраиваемый профиль, который включает добавление отсутствующих аннотаций.

Ответ 3

Иногда настройки в Window → Preferences → Java → Editor → Save Actions вызывают нежелательные эффекты, особенно в файлах XML при разработке приложений для Android (были там, это было так). Лучшим решением IMHO является использование +1 или щелчок правой кнопкой мыши по пакету (или классу и т.д.), А затем выберите "Источник" → "Очистить", чтобы добавить все ваши отсутствующие аннотации @Override.