設置字段假設我的I類有稱爲用java反射通過其setter方法
private long _quantity;
我已經創建了一個吸氣劑併爲它設定器(例如getQty
和setQty
)字段名稱。
當我使用field.set(...)
來迫使它通過它的setter時,Java反射中有一種方法嗎?
我剛剛閱讀了一個標籤@Access ...是否有任何人使用@Access的經驗?它可以用來強制一個字段訪問到一個方法?
設置字段假設我的I類有稱爲用java反射通過其setter方法
private long _quantity;
我已經創建了一個吸氣劑併爲它設定器(例如getQty
和setQty
)字段名稱。
當我使用field.set(...)
來迫使它通過它的setter時,Java反射中有一種方法嗎?
我剛剛閱讀了一個標籤@Access ...是否有任何人使用@Access的經驗?它可以用來強制一個字段訪問到一個方法?
不,如果你想打電話給你的setter,你需要調用該方法,而不是直接設置字段。
如果您對該字段本身有處理權限,set
將不會通過您的方法。
否。整體思考的重點是,您基本上是要拆除安全帶。
假設你的字段名稱對應於getter/setter方法,也許你可以使用getDeclaredMethods,找出正確的方法並使用它? 請參閱http://java.sun.com/developer/technicalArticles/ALT/Reflection/
不,你不能用反射做到這一點。我知道Java VM上唯一的技術是AspectJ,它可以讓你註冊intercept field access。但即便如此,反思也無濟於事。
字段名稱應對應於方法名稱,反之亦然。 – 2012-03-11 11:21:36
爲什麼人們堅持使用下劃線(或類似的)來表示域名? – Robert 2012-03-11 11:22:07
@Robert也出現在C#設計準則中。它看起來像下劃線嚇跑人們,所以他們不會觸及私人變量。 – GETah 2012-03-11 11:27:32