baos.close();
但是,通过编组,在处理引用的用户数据时,您将需要更大的灵活性。要实现这一点,请使用ObjectMarshallingStrategy
界面。提供了两种实现,但用户可以实现自己的实现。提供的两个策略是IdentityMarshallingStrategy
和SerializeMarshallingStrategy
。SerializeMarshallingStrategy
是默认值,如上例所示,它只调用用户实例上的Serializable
或Externalizable
方法。IdentityMarshallingStrategy
为每个用户对象创建一个整数id,并将它们存储在Map中,同时将id写入流中。解组时,它会访问IdentityMarshallingStrategy
地图以检索实例。这意着,如果你使用IdentityMarshallingStrategy
,它对Marshaller实例的生命是有状态的,并将创建id并保持对它试图编组的所有对象的引用。以下是使用身份编组策略的代码。
IdentityMarshallingStrategy