Для каждой аннотации определено сохранение. Сохранение в основном означает, в каких контекстах JVM должна сохранять аннотацию. Различные значения можно увидеть здесь . Поведение по умолчанию - CLASS
политика хранения, что означает, что аннотации находятся в файлах .class, но не используются JVM. То, что вы хотите, это RUNTIME
, смысл которого, я думаю, ясен. Кроме того, существует политика SOURCE
для аннотаций, которые актуальны только во время компиляции.
Чтобы установить политику хранения, вы должны аннотировать аннотацию (метамета, кого-нибудь?), Используя @Retention
, с которой вы можете прочитать больше о здесь .
Обучающее руководство по Java содержит немного больше информации об этом.