javadoc nói như sau:Sự khác nhau giữa Dòng # getAnnotations() và Field # getDeclaredAnnotations()
AccessibleObject#getDeclaredAnnotations:
Returns tất cả các chú thích liên quan trực tiếp có mặt trên yếu tố này. Không giống như các phương thức khác trong giao diện này, phương thức này bỏ qua các chú thích được kế thừa. (Trả về một mảng có độ dài bằng không nếu không có chú thích nào có mặt trực tiếp trên phần tử này.) Người gọi của phương thức này là miễn phí để sửa đổi mảng được trả về; nó sẽ không ảnh hưởng đến các mảng được trả lại cho những người gọi khác.
Returns tất cả các chú thích có mặt trên yếu tố này. (Trả về một mảng có độ dài bằng không nếu phần tử này không có chú thích.) Người gọi của phương thức này là miễn phí để sửa đổi mảng được trả về; nó sẽ không ảnh hưởng đến các mảng được trả lại cho những người gọi khác.
Kể từ getAnnotations
được kế thừa từ lớp java.lang.reflect.AccessibleObject
, có Dòng đối tượng truy cập vào nó.
Vì tôi hiểu đó là sự khác biệt duy nhất giữa chúng getDeclaredAnnotations
bỏ qua các chú thích được kế thừa. Tôi nhận được rằng khi giao dịch với các lớp học nhưng theo như tôi biết, các trường KHÔNG thể kế thừa các chú thích.
Điều này áp dụng như thế nào với 'Field'? Ngoài ra OP tiểu bang _ Tôi nhận được rằng khi giao dịch với Classes_ –
tôi biết làm thế nào nó hoạt động với Class nhưng tôi không nhận được trường. nhưng cảm ơn vì đã chỉ ra rằng tôi đã bỏ qua sai –
cảm ơn vì đã cập nhật đoạn mã của bạn, nhưng tôi vẫn thấy không có sự khác biệt giữa các phương thức quá ... –