Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > интерфейс Serializable


Автор: nucer 26.6.2004, 12:35
Читаю доки, раздел сериализация. Методы writeObject и readObject. Первыми строчками идут методы defaultWriteObject и defaultReadObject, а потом уже каждый член класса записывается... Так вот если закоммментить всё после defaultWriteObject , то всё будет точно также. С чтением то же самое. Так зачем там это всё написано?

Автор: Domestic Cat 26.6.2004, 20:04
Пояснy на примере кода:
Код

public class ArrayList extends AbstractList implements List, Cloneable, java.io.
   Serializable
{  
       private transient Object elementData[];
       private int size;

       private synchronized void writeObject(java.io.ObjectOutputStream stream) throws java.
         io.IOException
      {
       stream.defaultWriteObject(  );
       stream.writeInt(elementData.length);
       for (int i=0; i<size; i++)  
               stream.writeObject(elementData[i]);
       }
...
}



defaultWriteObject используется только в методе writeObject и нe сериализует static и transient поля. Если же вы хотите записать например transient поле (kak в данном случае) то и нужно использовать writeObject.

Автор: nucer 27.6.2004, 01:30
А, понятно, спасибо за конкретный ответ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)