java.beans

接口
异常
注释
java.lang.Object
  继承者 java.beans.Encoder
直接已知子类:
XMLEncoder

public class Encoder
     
extends Object

Encoder 是这样的类,它可用于创建根据其公共 API 对 JavaBeans 集合状态进行编码的文件或流。Encoder 结合其持久委托,负责将对象图形拆分成一系列可用于创建它的 StatementsExpression。子类通常使用某种可读形式(比如 Java 源代码或 XML)提供这些表达式的语法。

从以下版本开始:
1.4

构造方法摘要
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 persistenceDelegate)
          将与此 type 相关联的持久委托设置为 persistenceDelegate
 void writeExpression(Expression oldExp)
          该实现首先查看使用此值的表达式是否已经被写入。
protected  void writeObject(Object o)
          将指定对象写入输出流中。
 void writeStatement(Statement oldStm)
          将语句 oldStm 写入流中。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Encoder

public Encoder()
方法详细信息

writeObject

protected void writeObject(Object o)
将指定对象写入输出流中。序列化的形式将表示一系列的表达式,在读取输入流时,这种形式的组合效果将创建等效的对象。默认情况下,假定对象是具有 null 构造方法的 JavaBean,其状态通过 Introspector 返回的 "setter" 和 "getter" 方法的匹配对来定义。

参数:
o - 要写入流中的对象。
另请参见:
XMLDecoder.readObject()

setExceptionListener

public void setExceptionListener(ExceptionListener exceptionListener)
将此流的异常处理程序设置为 exceptionListener。当此流捕获可恢复的异常时,异常处理程序会获得通知。

参数:
exceptionListener - 此流的异常处理程序;如果该参数为 null,则使用默认异常侦听器。
另请参见:
getExceptionListener()

getExceptionListener

public ExceptionListener getExceptionListener()
获得此流的异常处理程序。

返回:
此流的异常处理程序;如果没有显式设置此处理程序,则返回默认异常侦听器。
另请参见:
setExceptionListener(java.beans.ExceptionListener)

getPersistenceDelegate

public PersistenceDelegate getPersistenceDelegate(Class<?> type)
返回给定类型的持久委托。持久委托是通过按顺序应用以下规则来计算的:
  • 如果 type 是一个数组,则返回内部持久委托,它将实例化适当类型和长度数组,初始化其每个元素,就好像它们是属性一样。
  • 如果 type 是一个代理,则返回内部持久委托,它将使用 Proxy 类中定义的静态 "newProxyInstance" 方法实例化一个新的代理实例。
  • 如果此类型的 BeanInfo 有一个定义了 "persistenceDelegate" 属性的 BeanDescriptor,则返回此值。
  • 在其他所有情况下返回默认持久委托。默认持久委托假定 type 是一个 JavaBean,这意味着它有一个默认构造方法,其状态通过 Introspector 返回的 "setter" 和 "getter" 方法的匹配对来定义。默认构造方法是有 ConstructorProperties 注释的、参数最多的构造方法。如果没有一个构造方法有 ConstructorProperties 注释,则使用 null 构造方法。例如,在下列语句中,对于 Foo 将使用 null 构造方法;对于 Bar 将使用有两个参数的构造方法。 public class Foo { public Foo() { ... } public Foo(int x) { ... } } public class Bar { public Bar() { ... }

    参数:
    type - 对象类型。
    返回:
    此对象类型的持久委托。
    另请参见:
    setPersistenceDelegate(java.lang.Class , java.beans.PersistenceDelegate), Introspector.getBeanInfo(java.lang.Class ), BeanInfo.getBeanDescriptor()

setPersistenceDelegate

public void setPersistenceDelegate(Class<?> type,
                                   PersistenceDelegate persistenceDelegate)
将与此 type 相关联的持久委托设置为 persistenceDelegate

参数:
type - 对其应用 persistenceDelegate 的对象的类。
persistenceDelegate - 用于 type 的实例的持久委托。
另请参见:
getPersistenceDelegate(java.lang.Class ), Introspector.getBeanInfo(java.lang.Class ), BeanInfo.getBeanDescriptor()

remove

public Object remove(Object oldInstance)
移除此实例的条目,返回旧条目。

参数:
oldInstance - 应该移除的条目。
返回:
被移除的条目。
另请参见:
get(java.lang.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 - 要写入流中的表达式。