2
當我讀取JDK 6.0的源代碼時,我在ArrayList中找到了這兩個方法。你看他們都是私人的。但搜索後,我沒有發現任何其他方法調用其中任何一個。我也考慮過本地方法,但仍找不到任何方法。這兩種方法似乎處理IO,但它們從來沒有被調用過。writeObject和readObject如何工作?
所以,我的問題是,他們是如何工作的?有沒有其他方法可以調用私有方法?
/**
* Save the state of the <tt>ArrayList</tt> instance to a stream (that is, serialize it).
*/
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException;
/**
* Reconstitute the <tt>ArrayList</tt> instance from a stream (that is, deserialize it).
*/
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException;
您可以隨時嘗試編輯方法來引發異常,然後查看堆棧跟蹤以查看它們的調用方式。 – Antimony
@Matt Ball明白! – blackdog
@MattBall thx!順便說一句,另一個問題。一個本地方法可以調用私有方法嗎? – blackdog