Override warning

283
11 января 2017, 00:44

Есть класс

class Base {
    public String toString() {
        return this.getClass().getName();
    }
}

В нем перекрывается метод toString без нотации @override. При компиляции в IntelliJ IDEA 2016.3 я ожидаю увидеть warning, но его нет. Добавлял в параметры компилятора Settings -> Compiler -> Java compiler -> Additional command line параметры -Xlint, -Xlint:all, -Xlint:overrides - никакого эффекта не возымело. Что я делаю не так?

Answer 1

Суть аннотации @override заключается в проверке наличия аннотируемого метода в суперклассе и не более того.

В случае переопределения метода без аннотации – никаких предупреждений быть не должно.

Вот если бы Вы указали аннотацию @override для метода, которого нет в суперклассе, то в этом случае IDE бы известила Вас об этом.

Answer 2

Ответ был найден на англоязычном SO http://stackoverflow.com/questions/4330275/javac-xlintoverrides-not-working Спасибо @post_zeew

Проблему отсутствия @Override компилятор не отслеживает (данная директива запрещает перекрывать отсутствующий метод). Но может отследить сама IDE. Для этого нужно зайти в Settings -> Editor -> Inspections и настроить параметр Missing @Override annotations. При этом можно еще снять чекбокс с опции `ignore 'equals()', 'hashCode()' and 'toString() methods'.

READ ALSO
О логировании в java

О логировании в java

Приводится на хабре в статье библиотека Apache Commons Logging (не знаю смысл этой библиотеки, не юзал) и комментарий:

333
Deadlock при использовании wait и notify

Deadlock при использовании wait и notify

Сегодня приступил к изучению многопоточности на java, не понимаю, почему программа в некоторых случаях выдает корректный результат, а в остальных...

324
java - SQL generated keys

java - SQL generated keys

В общем, проблема в том что при SQL запросе на update записи не возвращаются generated keys, хотя запись обновляется, с insert все работает корректно, а вот...

371
Primefaces lazyDataModel filter not working

Primefaces lazyDataModel filter not working

У меня есть две таблицы stock и productТаблицу я инициализирую через stock, но фильтр мне нужно сделать через product

372