Spec-Zone.ru › OpenJDK 27

Класс Encoder

java.lang.Object
java.beans.Encoder
Прямые подклассы:
XMLEncoder
public class Encoder extends Object
Encoder — это класс, который можно использовать для создания файлов или потоков, кодирующих состояние коллекции JavaBeans на основе их открытых API. Encoder вместе со своими делегатами сохранения отвечает за разбиение графа объектов на последовательность Statement и Expression, с помощью которых его можно создать. Подкласс обычно задаёт синтаксис этих выражений в человекочитаемом формате, например в виде исходного кода Java или XML.
Начиная с:
1.4

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

Конструктор Описание
Encoder()
Создаёт Encoder.

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

Модификатор и тип Метод Описание
Object get(Object oldInstance)
Возвращает предварительное значение для oldInstance в среде, созданной этим потоком.
ExceptionListener getExceptionListener()
Возвращает обработчик исключений для этого потока.
PersistenceDelegate getPersistenceDelegate(Class<?> type)
Возвращает делегат сохранения для указанного типа.
Object remove(Object oldInstance)
Удаляет запись для данного экземпляра и возвращает старую запись.
void setExceptionListener(ExceptionListener exceptionListener)
Задаёт для этого потока обработчик исключений exceptionListener.
void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
Связывает указанный делегат сохранения с заданным типом.
void writeExpression(Expression oldExp)
Реализация сначала проверяет, было ли уже записано выражение с этим значением.
protected void writeObject(Object o)
Записывает указанный объект в выходной поток.
void writeStatement(Statement oldStm)
Записывает оператор oldStm в поток.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарел, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

Encoder

public Encoder()
Создаёт Encoder.

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

writeObject

protected void writeObject(Object o)
Записывает указанный объект в выходной поток. Сериализованное представление будет содержать последовательность выражений, совокупный эффект которых создаст эквивалентный объект при чтении входного потока. По умолчанию предполагается, что объект является JavaBean с конструктором без параметров, состояние которого определяется соответствующими парами методов «сеттер» и «геттер», возвращаемыми Introspector.
Параметры:
o — объект, который необходимо записать в поток.
См. также:
  • XMLDecoder.readObject()

setExceptionListener

public void setExceptionListener(ExceptionListener exceptionListener)
Задаёт для этого потока обработчик исключений exceptionListener. Обработчик исключений получает уведомление, когда этот поток перехватывает восстанавливаемые исключения.
Параметры:
exceptionListener — обработчик исключений для этого потока; если null, будет использоваться обработчик исключений по умолчанию.
См. также:
  • getExceptionListener()

getExceptionListener

public ExceptionListener getExceptionListener()
Возвращает обработчик исключений для этого потока.
Возвращает:
Обработчик исключений для этого потока. Если он не был задан явно, будет возвращён обработчик исключений по умолчанию.
См. также:
  • setExceptionListener(ExceptionListener)

getPersistenceDelegate

public PersistenceDelegate getPersistenceDelegate(Class<?> type)
Возвращает делегат сохранения для указанного типа. Делегат сохранения выбирается путём последовательного применения следующих правил:
  1. Если делегат сохранения связан с указанным типом с помощью метода setPersistenceDelegate(Class, PersistenceDelegate), возвращается этот делегат.
  2. Затем выполняется поиск делегата сохранения по имени, составленному из полного имени указанного типа и суффикса "PersistenceDelegate". Например, делегат сохранения для класса Bean должен называться BeanPersistenceDelegate и находиться в том же пакете.
    public class Bean { ... }
    public class BeanPersistenceDelegate { ... }
    Экземпляр класса BeanPersistenceDelegate возвращается для класса Bean.
  3. Если тип — null, возвращается общий внутренний делегат сохранения, кодирующий значение null.
  4. Если тип является объявлением enum, возвращается общий внутренний делегат сохранения, который кодирует константы этого перечисления по их именам.
  5. Если тип является примитивным типом или соответствующим типом-оболочкой, возвращается общий внутренний делегат сохранения, который кодирует значения указанного типа.
  6. Если тип является массивом, возвращается общий внутренний делегат сохранения, который кодирует массив соответствующего типа и длины, а также каждый его элемент как свойство.
  7. Если тип является прокси-классом, возвращается общий внутренний делегат сохранения, который кодирует экземпляр прокси-класса с помощью метода Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler).
  8. Если BeanInfo для этого типа содержит BeanDescriptor, в котором определён атрибут "persistenceDelegate", возвращается значение этого атрибута.
  9. Во всех остальных случаях возвращается делегат сохранения по умолчанию. Он предполагает, что тип является JavaBean, то есть имеет конструктор по умолчанию, а его состояние можно определить по соответствующим парам методов «сеттер» и «геттер», возвращаемым классом Introspector. Конструктором по умолчанию считается конструктор с наибольшим числом параметров, помеченный аннотацией ConstructorProperties. Если ни один конструктор не помечен аннотацией ConstructorProperties, используется конструктор без параметров. Например, в следующем фрагменте кода будет использоваться конструктор без параметров класса Foo, а для класса Bar — конструктор с двумя параметрами.
    public class Foo {
        public Foo() { ... }
        public Foo(int x) { ... }
    }
    public class Bar {
        public Bar() { ... }
        @ConstructorProperties({"x"})
        public Bar(int x) { ... }
        @ConstructorProperties({"x", "y"})
        public Bar(int x, int y) { ... }
    }
Параметры:
type — класс объектов
Возвращает:
делегат сохранения для указанного типа
См. также:
  • setPersistenceDelegate(Class, PersistenceDelegate)
  • Introspector.getBeanInfo(Class)
  • BeanInfo.getBeanDescriptor()

setPersistenceDelegate

public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
Связывает указанный делегат сохранения с заданным типом.
Параметры:
type — класс объектов, к которым применяется указанный делегат сохранения
delegate — делегат сохранения для экземпляров указанного типа
См. также:
  • getPersistenceDelegate(Class)
  • Introspector.getBeanInfo(Class)
  • BeanInfo.getBeanDescriptor()

remove

public Object remove(Object oldInstance)
Удаляет запись для данного экземпляра и возвращает старую запись.
Параметры:
oldInstance — запись, которую необходимо удалить.
Возвращает:
Удалённая запись.
См. также:
  • get(Object)

get

public Object get(Object oldInstance)
Возвращает предварительное значение для oldInstance в среде, созданной этим потоком. Делегат сохранения может использовать свой метод mutatesTo, чтобы определить, можно ли инициализировать это значение для создания эквивалентного объекта на выходе или же необходимо создать новый объект. Если поток ещё не встречал это значение, возвращается null.
Параметры:
oldInstance — экземпляр для поиска.
Возвращает:
Объект или null, если объект не встречался ранее.

writeStatement

public void writeStatement(Statement oldStm)
Записывает оператор oldStm в поток. oldStm должен быть записан исключительно в терминах среды вызывающего кода, то есть цель и все аргументы должны принадлежать записываемому графу объектов. Эти выражения представляют собой последовательность выражений «что произошло», которые сообщают выходному потоку, как создать граф объектов, подобный исходному.

Реализация этого метода создаёт второе выражение, представляющее то же выражение в среде, которая будет существовать при чтении потока. Для этого достаточно вызвать writeObject для цели и всех аргументов и создать новое выражение с полученными результатами.

Параметры:
oldStm — выражение, которое необходимо записать в поток.

writeExpression

public void writeExpression(Expression oldExp)
Реализация сначала проверяет, было ли уже записано выражение с этим значением. Если нет, выражение клонируется с использованием той же процедуры, что и в writeStatement, а значение этого выражения согласуется со значением клонированного выражения вызовом writeObject.
Параметры:
oldExp — выражение, которое необходимо записать в поток.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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