JavaDoc mówi co następuje:Różnica między Pole # getAnnotations() i pole # getDeclaredAnnotations()
AccessibleObject#getDeclaredAnnotations:
zwraca wszystkie adnotacje, które są bezpośrednio obecny na tym elemencie. W przeciwieństwie do innych metod w tym interfejsie, ta metoda ignoruje odziedziczone adnotacje. (Zwraca tablicę o długości zero, jeśli adnotacje nie są bezpośrednio obecne w tym elemencie.) Wywoływacz tej metody może dowolnie modyfikować zwróconą tablicę; nie wpłynie to na tablice zwracane innym rozmówcom.
zwraca wszystkie adnotacje znajdujące się na tym elemencie. (Zwraca tablicę o długości zero, jeśli ten element nie ma adnotacji.) Wywoływacz tej metody może dowolnie modyfikować zwróconą tablicę; nie wpłynie to na tablice zwracane innym rozmówcom.
Od getAnnotations
jest dziedziczona po klasie java.lang.reflect.AccessibleObject
, mają dostęp do obiektów Field.
Jak rozumiem, jest to jedyna różnica między nimi, że getDeclaredAnnotations
ignoruje odziedziczone adnotacje. Rozumiem, że w kontaktach z klasami, ale o ile wiem, Fields NIE może dziedziczyć adnotacji.
Jak to się ma do "pola"? Także OP-y dostaję to, kiedy mam do czynienia z Classes_ –
wiem, jak to działa z Class, ale nie dostaję pola. ale dzięki za wskazanie, że pominęłem błąd –
dziękuję za aktualizację Twojego fragmentu, ale nadal nie widzę różnicy między tymi metodami ... –