Ответ
Аннотация в Java — это форма метаданных, которая добавляет декларативную информацию к классам, методам, полям и другим элементам кода. Они не влияют напрямую на выполнение программы, но могут обрабатываться компилятором, инструментами сборки или через механизм рефлексии во время выполнения.
Основные цели:
- Предоставление информации для компилятора (например,
@Override,@Deprecated). - Обработка во время компиляции или развертывания (генерация кода, конфигурация).
- Извлечение информации во время выполнения через рефлексию (используется в фреймворках).
Пример встроенной аннотации:
@Override
public String toString() {
return "Пример";
}
Типы аннотаций:
- Встроенные (стандартные):
@Override,@Deprecated,@SuppressWarnings,@FunctionalInterface. - Мета-аннотации (для создания своих аннотаций):
@Retention,@Target,@Documented,@Inherited. - Пользовательские аннотации, создаваемые разработчиком.
Практическое применение: Аннотации активно используются в Spring (для конфигурации бинов), Hibernate/JPA (для маппинга сущностей), Lombok (для генерации кода) и в модульном тестировании (JUnit).