Класс Encoder
- Прямые известные подклассы:
XMLEncoder
public class Encoder extends Object
Encoder — это класс, который можно использовать для создания файлов или потоков, кодирующих состояние коллекции JavaBeans на основе их общедоступных API. Encoder вместе со своими делегатами сохранения отвечает за разбиение графа объектов на ряд Statement и Expression, которые можно использовать для его создания. Подкласс обычно предоставляет синтаксис для этих выражений в человекочитаемой форме — например, в виде исходного кода Java или XML.- Начиная с версии:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Encoder() |
Создает Encoder. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
get |
Возвращает предварительное значение для oldInstance в среде, созданной этим потоком. |
ExceptionListener |
getExceptionListener() |
Возвращает обработчик исключений для этого потока. |
PersistenceDelegate |
getPersistenceDelegate |
Возвращает делегат сохранения для указанного типа. |
Object |
remove |
Удаляет запись для этого экземпляра и возвращает старую запись. |
void |
setExceptionListener |
Устанавливает для этого потока обработчик исключений exceptionListener. |
void |
setPersistenceDelegate |
Связывает указанный делегат сохранения с заданным типом. |
void |
writeExpression |
Сначала реализация проверяет, не была ли уже записана конструкция с этим значением. |
protected void |
writeObject |
Записывает указанный объект в выходной поток. |
void |
writeStatement |
Записывает инструкцию oldStm в поток. |
Подробное описание конструкторов
Encoder
public Encoder()
Encoder.Подробное описание методов
writeObject
protected void writeObject(Object o)
- Параметры:
-
o— объект, который необходимо записать в поток. - См. также:
setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener)
exceptionListener. Обработчик исключений получает уведомление, когда этот поток перехватывает восстанавливаемые исключения.- Параметры:
-
exceptionListener— обработчик исключений для этого потока; еслиnull, будет использоваться обработчик исключений по умолчанию. - См. также:
getExceptionListener
public ExceptionListener getExceptionListener()
- Возвращает:
- Обработчик исключений для этого потока; если обработчик исключений не был явно задан, возвращается обработчик по умолчанию.
- См. также:
getPersistenceDelegate
public PersistenceDelegate getPersistenceDelegate(Class<?> type)
- Если делегат сохранения связан с указанным типом с помощью метода
setPersistenceDelegate(Class, PersistenceDelegate), возвращается этот делегат. - Затем выполняется поиск делегата сохранения по имени, составленному из полного имени указанного типа и суффикса «PersistenceDelegate». Например, делегат сохранения для класса
Beanдолжен называтьсяBeanPersistenceDelegateи находиться в том же пакете.public class Bean { ... } public class BeanPersistenceDelegate { ... }Возвращается экземпляр классаBeanPersistenceDelegateдля классаBean. - Если тип —
null, возвращается общий внутренний делегат сохранения, кодирующий значениеnull. - Если тип является объявлением
enum, возвращается общий внутренний делегат сохранения, который кодирует константы этого перечисления по их именам. - Если тип является примитивным типом или соответствующим ему типом-оболочкой, возвращается общий внутренний делегат сохранения, который кодирует значения указанного типа.
- Если тип является массивом, возвращается общий внутренний делегат сохранения, который кодирует массив соответствующего типа и длины, а также каждый его элемент как свойство.
- Если тип является прокси, возвращается общий внутренний делегат сохранения, который кодирует экземпляр прокси с помощью метода
Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler). - Если для этого типа
BeanInfoимеетBeanDescriptor, в котором определен атрибут «persistenceDelegate», возвращается значение этого именованного атрибута. - Во всех остальных случаях возвращается делегат сохранения по умолчанию. Делегат сохранения по умолчанию предполагает, что тип является 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
public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
- Параметры:
-
type— класс объектов, к которым применяется указанный делегат сохранения -
delegate— делегат сохранения для экземпляров указанного типа - См. также:
remove
public Object remove(Object oldInstance)
- Параметры:
-
oldInstance— запись, которую необходимо удалить. - Возвращает:
- Удаленная запись.
- См. также:
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— выражение, которое необходимо записать в поток.
© 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