-
- All Superinterfaces:
-
Serializable
- 所有已知实现类:
-
DataFlavor
,MLet
,PrivateMLet
public interface Externalizableextends Serializable
只有Externalizable实例的类的标识才会写入序列化流中,并且该类负责保存和恢复其实例的内容。 Externalizable接口的writeExternal和readExternal方法由类实现,以使类完全控制对象及其超类型的流的格式和内容。 这些方法必须明确地与超类型协调以保存其状态。 这些方法取代了writeObject和readObject方法的自定义实现。
对象序列化使用Serializable和Externalizable接口。 对象持久性机制也可以使用它们。 要为Externalizable接口测试要存储的每个对象。 如果对象支持Externalizable,则调用writeExternal方法。 如果对象不支持Externalizable并且实现Serializable,则使用ObjectOutputStream保存对象。
重构Externalizable对象时,使用public no-arg构造函数创建实例,然后调用readExternal方法。 可序列化对象通过从ObjectInputStream中读取来恢复。
Externalizable实例可以通过Serializable接口中记录的writeReplace和readResolve方法指定替换对象。
- 从以下版本开始:
- 1.1
- 另请参见:
-
ObjectOutputStream
,ObjectInputStream
,ObjectOutput
,ObjectInput
,Serializable
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 void
readExternal(ObjectInput in)
该对象实现了readExternal方法,通过为原始类型调用DataInput方法并为对象,字符串和数组调用readObject来恢复其内容。void
writeExternal(ObjectOutput out)
该对象实现writeExternal方法,通过调用DataOutput的方法来保存其内容,或者为对象,字符串和数组调用ObjectOutput的writeObject方法。
-
-
-
方法详细信息
-
writeExternal
void writeExternal(ObjectOutput out) throws IOException
该对象实现writeExternal方法,通过调用DataOutput的方法来保存其内容,或者为对象,字符串和数组调用ObjectOutput的writeObject方法。- 参数
-
out
- 要将对象写入的流 - 异常
-
IOException
- 包括可能发生的任何I / O异常
-
readExternal
void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
该对象实现了readExternal方法,通过为原始类型调用DataInput方法并为对象,字符串和数组调用readObject来恢复其内容。 readExternal方法必须读取与writeExternal写入的相同序列和相同类型的值。- 参数
-
in
- 从中恢复数据以恢复对象的流 - 异常
-
IOException
- 如果发生I / O错误 -
ClassNotFoundException
- 如果找不到要还原的对象的类。
-
-