首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Hessian源码学习(6)

2012-06-27 
Hessian源码学习(六)分析了BasicSerializer和JavaSerializer,剩下的序列化类就比较简单了,今天我们分析下C

Hessian源码学习(六)
分析了BasicSerializer和JavaSerializer,剩下的序列化类就比较简单了,今天我们分析下CollectionSerializer和MapSerializer。

1.CollectionSerializer

 public void writeObject(Object obj, AbstractHessianOutput out)    throws IOException  {    if (out.addRef(obj))      return;    Map map = (Map) obj;    Class cl = obj.getClass();// 输出Map头,格式:'Mt' or 'Mt'[类型名]     if (cl.equals(HashMap.class))      out.writeMapBegin(null);    else      out.writeMapBegin(obj.getClass().getName());// 循环序列化每一个键值对    Iterator iter = map.entrySet().iterator();    while (iter.hasNext()) {      Map.Entry entry = (Map.Entry) iter.next();  // 分别序列化键、值 (若不清楚这里面做了什么,请看Hessian源码学习(三))      out.writeObject(entry.getKey());      out.writeObject(entry.getValue());    }// 输出结束标记'z'    out.writeMapEnd();  }

热点排行