JavaDoc говорит следующее:
AccessibleObject # getDeclaredAnnotations:
Возвращает все аннотации, которые непосредственно присутствуют в этом элементе. В отличие от других методов в этом интерфейсе, этот метод игнорирует унаследованные аннотации. (Возвращает массив нулевой длины, если в этом элементе не присутствуют аннотации.) Вызывающий этого метода может свободно изменять возвращенный массив; это не повлияет на массивы, возвращенные другим абонентам.
Возвращает все аннотации, присутствующие в этом элементе. (Возвращает массив нулевой длины, если этот элемент не имеет аннотаций.) Вызывающий этого метода может свободно изменять возвращенный массив; это не повлияет на массивы, возвращенные другим абонентам.
Поскольку getAnnotations
наследуется от класса java.lang.reflect.AccessibleObject
, у него есть объекты Field.
Как я понимаю, это единственное различие между ними, что getDeclaredAnnotations
игнорирует унаследованные аннотации. Я получаю это при работе с классами, но насколько я знаю, поля не могут наследовать аннотации.