Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/Encoder.html

Spec-Zone.ru

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