当前位置:天才代写 > tutorial > JAVA 教程 > java接口 – java.io.Serializable

java接口 – java.io.Serializable

2017-11-10 08:00 星期五 所属: JAVA 教程 浏览:280

public interface Serializable

实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类自己都是可序列化的。这个序列化接口没有任何要领和域,仅用于标识序列化的语意。

答允非序列化类的子范例序列化,子范例可以假定认真生存和规复父范例的公有的、掩护的和(假如可会见)包的域的状态。只要该类(扩展)有一个无参结构子,可初始化它的状态,那么子范例就可包袱上述职责。在这种环境下申明一个可序列化的类是一个错误。此错误将在运行时被检测。

在逆序列化期间,将利用非序列化类的公用的或掩护的无参结构子对它的域举办初始化。可序列化子类必需能会见父类的无参结构子。它的所有域将从相应流中被规复。

当遍历一个图象时,很大概碰着一个不支持序列化接口的工具。此时将抛出 NotSerializableException 异常,且标识该非序列化工具类。

在序列化处理惩罚进程中需要特定句柄的类,必需利用如下这些得当的标志实现特定的要领:

private void writeObject(java.io.ObjectOutputStream out)

throws IOException

private void readObject(java.io.ObjectInputStream in)

throws IOException, ClassNotFoundException;

writeObject 要领认真写特定类的工具的状态,以至相应的 readObject 要领能规复它。通过挪用 out.defaultWriteObject 可激活生存工具域的缺省机制。此要领不必体贴状态是属于它的父类照旧子类。利用 writeObject 要领或根基范例支持的 DataOutput 要领将每个域的状态生存到 ObjectOutputStream 中。

readObject 要领认真以后流中读取并规复类的域。它大概挪用 in.defaultReadObject 要领来挪用该工具的非静态和非临时的域的缺省规复机制。defaultReadObject 要领利用该流中的信息,用当前工具中的已定名域分派生存在流中该工具的相应域。当类已改造增加了新域时,这个接口也做相应处理惩罚。此要领不必体贴状态是属于它的父类照旧子类。利用 writeObject 要领或根基范例支持的 DataOutput 要领将每个域的状态生存到 ObjectOutputStream 中。

 

    关键字:

天才代写-代写联系方式