Аннотации

Разберёмся (наконец) с аннотациями.

Override

Гарантирует, что метод переопределяет метод из суперкласса или интерфейса. Если же метод, помеченный аннотацией Override, не переопределяет другой метод, код не скомпилируется.

FunctionalInterface

Гарантирует, что аннотированный интерфейс можно рассматривать как функциональный интерфейс, то есть для реализации достаточно определить один метод. К ней прибегают, чтобы гарантировать, что в качестве реализации интерфейса можно использовать лямбду. Если же аннотированный интерфейс требует реализации более чем одного метода (или, наоборот, он пустой), код не скомпилируется.

Nullable и NotNull (NonNull)

Эти аннотации применяются к полям ссылочного типа и методам, возвращающим значение ссылочного типа.

@Nullable означает, что поле может оказаться null или метод может вернуть null.

@NotNull и @NonNull применяются, чтобы показать, что поле не может быть null или метод не может вернуть null.

Помогает среде разработке подсказывать программисту о возможных ошибках.

Комментарии к уроку

Сообщить об ошибке