Почему Eclipse не добавляет аннотации @Override в рефакторинге «Generate Delegate Methods»? - PullRequest
10 голосов
/ 23 мая 2011

В Eclipse, если я попытаюсь применить рефакторинг «Generate Delegate Methods» к классу Java, как показано ниже:

class Foo implements Bar {
   Bar bar;
}

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

Ответы [ 3 ]

31 голосов
/ 23 мая 2011

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

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

Eclipse Save Actions

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

enter image description here

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

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

4 голосов
/ 23 мая 2011

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

1 голос
/ 07 декабря 2014

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

...