這是一個關於Java如何在內部進行反射的問題。訪問器方法和Java反射
我有一個抽象類,說
SuperClass
,並從父類2類子女學費,
ChildClass1
和ChildClass2
。
SuperClass
定義了訪問方法getValue()
,儘管它沒有定義屬性值。
ChildClass1
和ChildClass2
覆蓋的方法和getValue()
既註釋@MyAnnotation
添加到方法,@MyAnnotation
被保持在運行時(這是OneToOne
註釋)。
在我的程序中,我有一個ChildClas1
的實例和ChildClass2
的實例。我使用反射從兩個對象中獲取所有方法。
正如所料,我在結果數組中得到了兩個getValue()
方法(一個用於SuperClass
,另一個用於ChildClass
)。
對於ChildClass1
的getValue()
方法有@MyAnnotation
被標記爲訪問的實例(methodAccessor財產!= NULL)但對於ChildClass2
實例方法標記爲訪問沒有註釋(是的getValue()
方法父類)。
我不明白爲什麼,最終我改變了方法是在ChildClass2
聲明的順序(有不僅僅是存取更多的方法),也就是我把所有getter和setter在begginging和ChildClass2
被表現爲ChildClass1
。
我的問題是,Java如何將方法限定爲反射中的訪問器,並且進一步按照聲明方法的順序改變反射行爲?
後兩句話,我失去了蹤跡,你可以把一個簡單的例子一起傳達你想要達到的目的,你的問題太長以至於不能... – Nim
你可以擦亮和重新格式化你的問題,併發布你的實際的代碼,請嗎? – carlspring