Класс 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 в поток. |
Подробное описание конструкторов
Конструктор
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. - Если тип является объявлением перечисления, возвращается общий внутренний делегат сохранения, который кодирует константы этого перечисления по их именам.
- Если тип является примитивным типом или соответствующим обёрткой, возвращается общий внутренний делегат сохранения, который кодирует значения данного типа.
- Если тип является массивом, возвращается общий внутренний делегат сохранения, который кодирует массив соответствующего типа и длины, и каждый его элемент, как если бы они были свойствами.
- Если тип является прокси, возвращается общий внутренний делегат сохранения, который кодирует экземпляр прокси с использованием метода
Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler). - Если для этого типа есть
BeanInfoсBeanDescriptor, который определяет атрибут "persistenceDelegate", возвращается значение этого атрибута. - Во всех остальных случаях возвращается делегат сохранения по умолчанию. Делегат сохранения по умолчанию предполагает, что тип является JavaBean, подразумевая, что он имеет конструктор по умолчанию и что его состояние может быть охарактеризовано соответствующими парами методов «setter» и «getter», возвращаемыми классом
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, 2023, 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/21/docs/api/java.desktop/java/beans/Encoder.html