4
我使用Vaadin框架並希望覆蓋某些行爲。如何更改父類中的私有字段
問題是一個字段的所有設置者都有我不想調用的副作用。
因此,我想直接設置專用字段。
這裏是我的代碼:
@Override
public void setItemDataSource(Item itemDataSource) {
//do some stuff
java.lang.reflect.Field privateField = this.getClass().getDeclaredField(itemDatasource); //Yes the spelling is correct.
privateField.set(this, itemDataSource); <<-- I get an error.
//do more stuff
我碰到下面的錯誤。
// TODO:複製粘貼錯誤。
顯然我不應該包括this
作爲領域的對象需要改變,但一些其他的參考。
我在做什麼錯?
你可以發佈完整的異常跟蹤?我假設即使你必須這樣做,你也沒有爲私人領域設置可見性修飾符來允許這一點。但是,我必須說,我不鼓勵做這樣的事情......(Aw。Assylias以一定的幅度擊敗我) – ppeterka 2013-03-08 11:52:48