Интерфейс Externalizable в Java расширяет интерфейс Serializable и даёт классам полный контроль над тем, как сериализуются и десериализуются их экземпляры.
В отличие от обычной сериализации, Externalizable позволяет классу полностью настроить процесс сохранения и восстановления состояния объекта, вместо того чтобы полагаться на стандартный механизм сериализации Java.
Класс, который реализует Externalizable, должен реализовать два метода:
writeExternal(ObjectOutput out) — управляет тем, как данные объекта записываются в поток при сериализацииreadExternal(ObjectInput in) — управляет тем, как данные объекта читаются из потока при десериализацииИспользуй Externalizable, когда тебе нужно:
public class MyClass implements Externalizable {
private String name;
private int age;
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(name);
out.writeInt(age);
}
public void readExternal(ObjectInput in)
throws IOException, ClassNotFoundException {
name = (String) in.readObject();
age = in.readInt();
}
}
Если Serializable — это маркерный интерфейс, который использует автоматическую сериализацию Java, то Externalizable требует явной реализации логики сериализации от разработчика.
Интерфейс Externalizable расширяет Serializable и требует явной реализации методов writeExternal() и readExternal() для управления поведением сериализации.
Новый — ещё не проверен сообществом
Вы