Spec-Zone.ru › OpenJDK 17

Интерфейс Externalizable

Все суперинтерфейсы:
Serializable
Все известные подинтерфейсы:
RemoteRef, ServerRef
Все известные реализующие классы:
DataFlavor, MLet, PrivateMLet
public interface Externalizable extends Serializable
В поток сериализации записывается только идентификатор класса экземпляра Externalizable, и класс несёт ответственность за сохранение и восстановление содержимого своих экземпляров. Методы writeExternal и readExternal интерфейса Externalizable реализуются классом, чтобы дать классу полный контроль над форматом и содержимым потока для объекта и его супертипов. Эти методы должны явно координировать сохранение состояния с супертипом. Эти методы заменяют настраиваемые реализации методов writeObject и readObject.
Сериализация объектов использует интерфейсы Serializable и Externalizable. Их также могут использовать механизмы сохранения объектов. Каждый объект, подлежащий сохранению, проверяется на наличие интерфейса Externalizable. Если объект поддерживает Externalizable, вызывается метод writeExternal. Если объект не поддерживает Externalizable, но реализует Serializable, объект сохраняется с помощью ObjectOutputStream.
При восстановлении объекта Externalizable создаётся экземпляр с помощью публичного конструктора без аргументов, затем вызывается метод readExternal. Объекты Serializable восстанавливаются путём чтения их из ObjectInputStream.
Экземпляр Externalizable может назначить замещающий объект с помощью методов writeReplace и readResolve, документированных в интерфейсе Serializable.
С тех пор как:
1.1
См. также:
  • ObjectOutputStream
  • ObjectInputStream
  • ObjectOutput
  • ObjectInput
  • Serializable

Краткое описание методов

Модификатор и тип Метод Описание
void readExternal(ObjectInput in)
Объект реализует метод readExternal для восстановления своего содержимого, вызывая методы DataInput для примитивных типов и readObject для объектов, строк и массивов.
void writeExternal(ObjectOutput out)
Объект реализует метод writeExternal для сохранения своего содержимого, вызывая методы DataOutput для его примитивных значений или вызывая метод writeObject ObjectOutput для объектов, строк и массивов.

Подробное описание методов

writeExternal

void writeExternal(ObjectOutput out) throws IOException
Объект реализует метод writeExternal для сохранения своего содержимого, вызывая методы DataOutput для его примитивных значений или вызывая метод writeObject ObjectOutput для объектов, строк и массивов.
Параметры:
out - поток для записи объекта
Исключения:
IOException - Включает любые исключения I/O, которые могут возникнуть

readExternal

void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
Объект реализует метод readExternal для восстановления своего содержимого, вызывая методы DataInput для примитивных типов и readObject для объектов, строк и массивов. Метод readExternal должен читать значения в том же порядке и с теми же типами, что и метод writeExternal.
Параметры:
in - поток для чтения данных для восстановления объекта
Исключения:
IOException - если возникают ошибки ввода-вывода
ClassNotFoundException - Если класс восстанавливаемого объекта не найден.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Externalizable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API