Какие типы аннотаций @Retention ты знаешь и чем они отличаются?

В Java аннотация @Retention определяет, как долго аннотация будет сохраняться и доступна в процессе выполнения программы. Существует три основных типа RetentionPolicy:

Короткий ответ

Что ответить на собеседовании

В Java аннотация @Retention определяет, как долго аннотация будет сохраняться и доступна в процессе выполнения программы. Существует три основных типа RetentionPolicy:

Подробный разбор

Ответ с пояснениями

В Java аннотация @Retention определяет, как долго аннотация будет сохраняться и доступна в процессе выполнения программы. Существует три основных типа RetentionPolicy:

  1. SOURCE — аннотация доступна только в исходном коде и удаляется компилятором. Она не попадает в скомпилированный класс-файл.
  2. CLASS — аннотация сохраняется в скомпилированном классе, но не доступна во время выполнения через рефлексию. Это поведение по умолчанию.
  3. RUNTIME — аннотация сохраняется в классе и доступна во время выполнения через рефлексию. Используется для аннотаций, которые влияют на поведение программы во время работы.

Пример:

@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String value();
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее