Ответ 1
Политика хранения по умолчанию RetentionPolicy.CLASS
, что означает, что по умолчанию информация о аннотации не сохраняется во время выполнения:
Аннотации должны записываться в файл класса компилятором, но не должны сохраняться VM во время выполнения. Это поведение по умолчанию.
Вместо этого используйте RetentionPolicy.RUNTIME
:
Аннотации должны быть записаны в файле класса компилятором и сохранены VM во время выполнения, поэтому их можно читать с рефлексивностью.
... который вы указываете с помощью мета-аннотации @Retention
:
@Retention(RetentionPolicy.RUNTIME)
public @interface NewAnnotationType {
}