Подтвердить что ты не робот

IntelliJ можно добавить @Overrrides ко всем методам конкретного интерфейса?

Я создал интерфейс, содержащий около 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 

}
4b9b3361

Ответ 1

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

Fix all

Ответ 2

Для IntelliJ:

  • Проверьте, есть ли у вас "Отсутствие аннотации @Override" внутри "Настройки" → "Настройки проекта" → "Инспекции" → "Проблемы с наследованием".
  • Использовать анализ → Проверить код
  • Найти проблемы наследования → Отсутствует аннотация @Override внутри окна "Результаты для профиля проверки".
  • Применить исправление "Добавить аннотацию @Override" Apply fix "Add @Override annotation"

Ответ 3

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

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

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

Это работало для меня, чтобы правильно комментировать несколько сотен классов...

Ответ 4

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

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

Intellij Add @override for tests in changed files only

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

Ответ 5

Это не затмение или идея. Его компилятор определен и что вы соблюдаете. В eclipse его 1.6 или выше. И в идее я верю ее на 1,5 или выше.

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