Для чего используются аннотации?

Рассмотрим варианты использования аннотаций с точки зрения параметра тип хранения или RetentionPolicy. Оно может принимать одно из трёх возможных значений:

  • CLASS – данная аннотация присутствует в байт коде после компиляции, но игнорируется Java машиной, а значит не используется во время выполнения. Часто используется сторонними сервисами, которые используют вашу программу как plug-in модуль;
  • RUNTIME – этот тип аннотаций компилятор сохраняет в байт коде и подгружается Java машиной, а значит он может быть использован при выполнении приложения. Основная цель такой RUNTIME аннотации – предоставление информацией, которая может потребоваться во время выполнения приложения. Может использоваться в качестве меток в программе, которые способны влиять на процесс выполнения приложения. Для использования RUNTIME аннотации в приложении требуется выполнить определённый код процессинга, который может прочитать метаданные с помощью инструментов Reflection API. Этот подход применяется в таких популярных фреймворках как Spring и Jackson;
  • SOURCE – такая аннотация используется только на этапе написания исходного кода и не используется при компиляции. Такие аннотации могут быть двух видов:

Во-первых, нужных только программисту и не используемых приложением. Это могут быть специальные маркеры, которые добавляют необходимым элементам специфическую семантику. В качестве примера можно назвать @Immutable из Hibernate.

Во-вторых, команды, влияющие на работу компилятора, например, @SuppressWarnings и @Override, которые управляют показом сообщений об ошибках и предупреждений.

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *