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

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

При сериализации автоматически не сериализуются:
— 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;
        }
    }
(Просмотрено 226 раз, 1 раз за сегодня)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *