Я сериализации объекта к сгустка в SQLiteOpenHelper так:Поддержание Serializable класса в Java/Android
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(value);
out.close();
Каждый класс определить свою собственную serialVersionUID, что никогда не изменится.
Как работает сериализация/десериализация? Помнит ли это имя поля и значение, связанное с ним? Если я продолжаю добавлять/удалять поле, существует ли вероятность изменения существующего поля?
Например, скажем, я сериализовать этот класс:
public class Foo implements Serializable {
private static final long serialVersionUID = 4068188167994381987L;
String x;
int y;
}
Where x is "A", and y is 1;
Тогда я изменить класс, как так:
public class Foo implements Serializable {
private static final long serialVersionUID = 4068188167994381987L;
float f;
String x;
}
Если я продолжаю добавлять/удалять поля, будет каждый раз, когда я десериализации Foo
x по-прежнему «А»?