IntelliJ возможно ли добавить @Overrrides ко всем методам определенного интерфейса? - PullRequest
41 голосов
/ 27 января 2012

Я создал интерфейс, содержащий около 30 методов и реализованный в 30 классах.

Я хочу добавить @Override к каждой из реализаций, но я не хотел бы делать это вручную.

Как мне может помочь IntelliJ? * Интерфейс

выглядит следующим образом:

public interface PreviewObjectTests {
    void testGetName();
    void testGetType();
    //... 30 similar methods
}

код реализации:

public class PreviewObjectAccountTest implements PreviewObjectTests {

    //I want to add @Override here!
    @Test public void testGetName() {
        assertThat(...);
    }

    //I want to add @Override here!
    @Test public void testGetType() {
        assertThat(...);
    }

    //...30 similar methods 

}

Ответы [ 5 ]

51 голосов
/ 27 января 2012

Легко сделать с помощью Alt + Введите намерение, затем нажмите Стрелка вправо для подменю:

Fix all

42 голосов
/ 10 апреля 2014

Для IntelliJ:

  1. Проверьте, установлен ли флажок «Отсутствует аннотация @Override» в «Предпочтениях» -> «Настройки проекта» -> «Проверки» -> «Проблемы наследования».
  2. «Использовать анализ» ->Проверка кода
  3. Поиск проблем наследования -> Отсутствует аннотация @Override в окне «Результаты для профиля проверки».
  4. Примените исправление «Добавление аннотации @Override» Apply fix
0 голосов
/ 13 сентября 2016

Для Eclipse (протестировано на Mars.2):

Окно / Предпочтения (или Свойства проекта) Java / Ошибка компилятора / Предупреждения Предупреждения Отсутствует аннотация @Override - Установить на Ошибка (или Предупреждение)

После восстановления рабочей области в представлении «Маркеры» щелкните правой кнопкой мыши одну из ошибок, «Быстрое исправление» (Ctrl + 1), и все ошибки должны появиться.Выберите все и примените исправление.

Это помогло мне правильно аннотировать несколько сотен классов ...

0 голосов
/ 27 января 2012

Это не затмение или идея конкретная.Его специфика компилятора и какого соответствия вы придерживаетесь.В затмении его 1,6 или выше.И, по идее, я верю, что его значение составляет 1,5 или выше.

В вышеупомянутых случаях оно автоматически проверяется соответствующими IDE.

0 голосов
/ 27 января 2012

Я нашел способ сделать это с помощью простого инструмента поиска / замены.

  1. Сначала я изменил имя метода, чтобы спровоцировать изменение всех файлов, реализующих интерфейс
  2. Затем я создал простой поиск / замену для просмотра только в измененных файлах.

Intellij Add @override for tests in changed files only

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...