Для чего используются аннотации?
Рассмотрим варианты использования аннотаций с точки зрения параметра тип хранения или RetentionPolicy. Оно может принимать одно из трёх возможных значений:
- CLASS – данная аннотация присутствует в байт коде после компиляции, но игнорируется Java машиной, а значит не используется во время выполнения. Часто используется сторонними сервисами, которые используют вашу программу как plug-in модуль;
- RUNTIME – этот тип аннотаций компилятор сохраняет в байт коде и подгружается Java машиной, а значит он может быть использован при выполнении приложения. Основная цель такой RUNTIME аннотации – предоставление информацией, которая может потребоваться во время выполнения приложения. Может использоваться в качестве меток в программе, которые способны влиять на процесс выполнения приложения. Для использования RUNTIME аннотации в приложении требуется выполнить определённый код процессинга, который может прочитать метаданные с помощью инструментов Reflection API. Этот подход применяется в таких популярных фреймворках как Spring и Jackson;
- SOURCE – такая аннотация используется только на этапе написания исходного кода и не используется при компиляции. Такие аннотации могут быть двух видов:
Во-первых, нужных только программисту и не используемых приложением. Это могут быть специальные маркеры, которые добавляют необходимым элементам специфическую семантику. В качестве примера можно назвать @Immutable из Hibernate.
Во-вторых, команды, влияющие на работу компилятора, например, @SuppressWarnings и @Override, которые управляют показом сообщений об ошибках и предупреждений.
Как в продуктовой команде
Обучающая платформа AndroidSprint
Kanban-доска, код-ревью и Git Flow. Учитесь работать в процессах, которые используют в продакшене — задачи, как в Jira
- Kanban: доска задач как в Jira — привыкаете к инструментам с первого дня
- Процессы: код-ревью, Git workflow, спринты — как на реальной работе
- Треки: Android, Backend, QA — полный цикл разработки