Отсутствует аннотация: @Override не отображается компилятором в Eclipse IDE - PullRequest
2 голосов
/ 29 апреля 2019

Это немного странно! но когда я реализую Collection для своего модального класса и добавляю нереализованные методы с помощью Eclipse IDE, он не показывает @Override ни в одном из методов, которые генерируются путем нажатия на «Add Unimplemented Methods».

public class MadeItACollection implements Collection{
}

Когда я нажимаю «Добавить реализованные методы», происходит следующее:

public class MadeItACollection implements Collection{

 public int size() {
    // TODO Auto-generated method stub
    return 0;
}

public boolean isEmpty() {
    // TODO Auto-generated method stub
    return false;
}
.
.
.
.
}

Я не вижу @Override. Я компилирую свою кодовую базу в Java 8. Я что-то упускаю из виду?

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Как показывают комментарии людей, это опция стиля кода в Eclipse.

Вы можете включить его в «Предпочтения» -> «Java -> Стиль кода» - убедитесь, что пометка «Добавить @Override для новых методов переопределения» отмечена; После этого вы можете также добавить его для реализации методов интерфейса по ссылке, расположенной прямо под ним. (Вы также можете включить автоматическое добавление аннотации в качестве действия Очистка или Сохранить в этих меню.)

0 голосов
/ 30 апреля 2019

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

Однако настоятельно рекомендуется использовать аннотацию @Override для этих методов, поскольку:

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

Большинство IDE фактически помогут вам добавить это автоматически:

Интеллект Идея:

Перейдите к

Файл => Настройки => Редактор => Стиль кода => Java

И выделите Override Method Signature, и вы должны найти Insert @Override annotation, убедитесь, что это проверено.

В документации Jetbrains говорится об этой опции ниже:

Вставить аннотацию @Override: установите этот флажок, чтобы IntelliJ IDEA автоматически вставлял аннотации @Override.

Itellij setting for missing override annotation

Затмение:

Перейдите к:

Window => Настройки => Java => Стиль кода

И найдите Add @Override annotation for new overriding methods и убедитесь, что он был проверен.

Eclipse setting for add override annotation for new overriding methods

Вы также можете добавить его как Save Action, перейдя по адресу:

Window => Настройки => Java => Редактор => Сохранить действия

И обеспечение выбора Perform the selected actions on save и выбора Additional actions и обеспечение настройки Add missing Annotations

Eclipse setting for missing override annotation

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