Аннотация(@Annotation) — форма метаданных, предоставляющая данные о программе, которая не является частью самой программы. Аннотации не имеют прямого влияния на работу кода, они аннотируют его и представляют из себя лишь мета информацию.
package java.lang.annotation;
Аннотации используются в трех случаях:
- @Retention(RetentionPolicy.CLASS) — Аннотации должны быть записаны в файле класса компилятором, но не обязательно должен быть сохранен JVM во время выполнения. Это поведение по умолчанию.
- @Retention(RetentionPolicy.SOURCE) — Аннотации могут быть использованы компилятором для обнаружения ошибок или подавления предупреждений например @SuppressWarnings;
- @Retention(RetentionPolicy.RUNTIME) — Аннотации должны быть записаны в файле класса компилятором и сохранятся в VM во время выполнения, так что они могут быть прочитаны с помощью рефлексии;
Аннотированы могут быть пакеты, классы, методы, переменные и параметры.