问答详情
源自:6-2 transient及ArrayList源码分析

自己序列化元素writeObjec 调用位置

请问一下 private void writeObject(java.io.ObjectOutputStream s)是在哪被调用的?没找到被调用?

提问者:慕粉4102333 2016-10-29 17:45

个回答

  • 霸道学长3192921
    2017-02-17 18:24:27

    不懂的看一下源码和API解释,一目了然!!学JAVA就是要学会看文档和源码~~~~这才是最好的学习方法!

  • 霸道学长3192921
    2017-02-17 18:20:56

        public final void writeObject(Object obj) throws IOException {
            if (enableOverride) {
                writeObjectOverride(obj);
                return;
            }
            try {
                writeObject0(obj, false);
            } catch (IOException ex) {
                if (depth == 0) {
                    writeFatalException(ex);
                }
                throw ex;
            }
        }

    这是源码,会优先调用子类重写过的方法的。

  • beckzl
    2016-11-01 17:19:43

    建议你去看看ObjectOutputStream和ObjectInputStream的API文档,介绍的比较清楚。
    http://img.mukewang.com/58185e0a00018bdf14400813.jpg

  • beckzl
    2016-11-01 16:41:11

    这个自己写的是和默认的同名的方法,相当于重写