Для чего используются аннотации?
Рассмотрим варианты использования аннотаций с точки зрения параметра тип хранения или RetentionPolicy. Оно может принимать одно из трёх возможных значений:
- CLASS – данная аннотация присутствует в байт коде после компиляции, но игнорируется Java машиной, а значит не используется во время выполнения. Часто используется сторонними сервисами, которые используют вашу программу как plug-in модуль;
- RUNTIME – этот тип аннотаций компилятор сохраняет в байт коде и подгружается Java машиной, а значит он может быть использован при выполнении приложения. Основная цель такой RUNTIME аннотации – предоставление информацией, которая может потребоваться во время выполнения приложения. Может использоваться в качестве меток в программе, которые способны влиять на процесс выполнения приложения. Для использования RUNTIME аннотации в приложении требуется выполнить определённый код процессинга, который может прочитать метаданные с помощью инструментов Reflection API. Этот подход применяется в таких популярных фреймворках как Spring и Jackson;
- SOURCE – такая аннотация используется только на этапе написания исходного кода и не используется при компиляции. Такие аннотации могут быть двух видов:
Во-первых, нужных только программисту и не используемых приложением. Это могут быть специальные маркеры, которые добавляют необходимым элементам специфическую семантику. В качестве примера можно назвать @Immutable из Hibernate.
Во-вторых, команды, влияющие на работу компилятора, например, @SuppressWarnings и @Override, которые управляют показом сообщений об ошибках и предупреждений.
Peer-to-peer собеседования
AI Sprints — обучение профессиям с ИИ
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе