Spec-Zone.ru › OpenJDK 8

Интерфейс Externalizable

Все суперинтерфейсы:
Serializable
Все известные подинтерфейсы:
RemoteRef, ServerRef
Все известные реализующие классы:
ActivationDataFlavor, DataFlavor, MimeType, 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.

С:
JDK1.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 - Включает любые исключения ввода-вывода, которые могут возникнуть

readExternal

void readExternal(ObjectInput in)
           throws IOException,
                  ClassNotFoundException

Объект реализует метод readExternal для восстановления своего содержимого, вызывая методы DataInput для примитивных типов и readObject для объектов, строк и массивов. Метод readExternal должен читать значения в том же порядке и с теми же типами, что и writeExternal.

Параметры:
in - поток для чтения данных для восстановления объекта
Исключения:
IOException - если возникают ошибки ввода-вывода
ClassNotFoundException - если класс объекта, который восстанавливается, не найден.

© 1993, 2020, 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.

Spec-Zone.ru

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