Searchable.java
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Searchable { }
Obj.java
public class Obj {
@Searchable
String myField;
}
void main (String [] args)
Annotation[] annotations = Obj.class.getDeclaredField("myField").getAnnotations();
Я ожидаю, что annotations
будет содержать мой @Searchable
. Хотя это null
. Согласно документации, этот метод:
Возвращает все аннотации, присутствующие в этом элементе. (Возвращает массив нулевой длины, если этот элемент не имеет аннотаций.) Вызывающий этого метода может свободно изменять возвращенный массив; это не повлияет на массивы, возвращенные другим абонентам.
Что еще более странно (для меня), так как он возвращает null
вместо Annotation[0]
.
Что я делаю неправильно здесь и более важно, как я смогу получить свой Annotation
?