读书人

Hessian源码学习(6)

发布时间: 2012-06-27 14:20:08 作者: rapoo

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();  }

读书人网 >开源软件

热点推荐