Класс 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(java.lang.Class<?>, java.beans.PersistenceDelegate), он возвращается. - Затем делегат сохранения ищется по имени, составленному из полных квалифицированных имени данного типа и суффикса «PersistenceDelegate». Например, делегат сохранения для класса
Beanдолжен называтьсяBeanPersistenceDelegateи располагаться в том же пакете.public class Bean { ... } public class BeanPersistenceDelegate { ... }Для классаBeanвозвращается экземпляр классаBeanPersistenceDelegate. - Если тип является
null, возвращается общий внутренний делегат сохранения, кодирующий значениеnull. - Если тип является объявлением
enum, возвращается общий внутренний делегат сохранения, кодирующий константы этой перечисления по их именам. - Если тип является примитивным типом или соответствующим обёрткой, возвращается общий внутренний делегат сохранения, кодирующий значения данного типа.
- Если тип является массивом, возвращается общий внутренний делегат сохранения, кодирующий массив соответствующего типа и размера, а также каждый его элемент, как если бы они были свойствами.
- Если тип является прокси, возвращается общий внутренний делегат сохранения, кодирующий экземпляр прокси с использованием метода
Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/beans/Encoder.html