序列化,记录变量名、类型、长度
反序列化,如果找不到类型,就使用MapDeserializer
/**
* Reads the object as a map.
*/
public Object readMap(AbstractHessianInput in, String type)
throws HessianProtocolException, IOException
{
Deserializer deserializer = getDeserializer(type);
if (deserializer != null)
return deserializer.readMap(in);
else if (_hashMapDeserializer != null)
return _hashMapDeserializer.readMap(in);
else {
_hashMapDeserializer = new MapDeserializer(HashMap.class);
return _hashMapDeserializer.readMap(in);
}
}
如果找得到类型,使用UnsafeDeserializer
protected Deserializer getDefaultDeserializer(Class cl)
{
if (InputStream.class.equals(cl))
return InputStreamDeserializer.DESER;
if (_isEnableUnsafeSerializer) {
return new UnsafeDeserializer(cl, _fieldDeserializerFactory);
}
else
return new JavaDeserializer(cl, _fieldDeserializerFactory);
}