Правила сериализации

При сериализации автоматически не сериализуются:
— transient переменные
— static переменные — унаследованные переменные (они будут инициализированы с помощью конструктора родительского класса без параметров).
Все это можно разными способами сериализовать врукопашную (externalizable).
Для сериализации объектов внутренних нестатических классов, внешние классы должны быть сериализуемыми.

Да, чтобы немного дополнить алгоритм стандартной сериализации/десериализации, используют два метода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class B extends A implements Serializable {

        private String nameB;

        private void writeObject(ObjectOutputStream oos) throws Exception{
            oos.defaultWriteObject();
            oos.writeObject(nameA);
        }

        private void readObject(ObjectInputStream ois) throws  Exception{
            ois.defaultReadObject();
            nameA = (String) ois.readObject();
        }

        public B(String nameA, String nameB) {
            super(nameA);
            this.nameA += nameA;
            this.nameB = nameB;
        }
    }
(Просмотрено 38 раз, 1 раз за сегодня)
Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий