2011-12-22 65 views
0

我想知道:「輸出」參數是發送給超類,但我們在它後面添加「putSerializable」:在我們調用之後「修改」它並不重要超類?如果項目刷新,應用程序如何知道我們添加了這個serializable? (我們爲什麼不把序列化的第一,然後我們調用父類的?)添加一個putSerializable到onSaveInstanceState

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putSerializable(NotesDbAdapter.KEY_ROWID, mRowId); 
    } 

和我們的onCreate方法:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ... 
     mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState.getSerializable(NotesDbAdapter.KEY_ROWID); 

感謝

回答

1

您可以執行。

outState通過引用傳遞給super,因此之後的任何更改仍然會影響對象。

它是最好的解釋在這裏:

http://www.yoda.arachsys.com/java/passing.html

+0

嗯好的,是有道理的,感謝您的快速回答布倫德爾! – Paul 2011-12-22 23:24:50