RetentionPolicy.SOURCE
: аннотация будет доступна в исходном коде программы, она не будет находиться в файле .class и не будет доступна во время выполнения. Используется компилятором. RetentionPolicy.CLASS
: аннотация будет в файле .class, но она не будет доступна во время выполнения. Используемые инструменты обработки кода байта, такие как ASM, выполняют модификации RetentionPolicy.RUNTIME
: аннотация будет доступна в файле .class и времени выполнения, для проверки через java-отражение через getAnnotations()
.