從我對java的瞭解我不認爲這是可能的,但我想提出這個問題的人比我有更多的知識。訪問時修改一個靜態變量
如果我有一個靜態變量說,
public static String NAME = "james";
有什麼辦法,通過反射或其它方式說創造了聽衆的變量,例如,如果有人呼叫:
ClassName.NAME
它可以在獲得結果之前進行修改,因此我可以更改NAME的值,使其等於「simon」而不是?
要清楚,這個代碼庫不是我自己的,我不能改變變量來代替使用getters和setter。我知道這會讓這個更簡單,但不幸的是這不是一個選項。
不,不適用於字段訪問,不適用於純Java。看看AspectJ。 –
使變量保持私密並提供公共的getter和setter函數。 –
@KevinWorkman我正在使用不是我自己的代碼庫,我不能將該變量更改爲方法,但不幸的是不會破壞其他人的代碼。 –