读书人

计算对象大小

发布时间: 2012-12-28 10:29:05 作者: rapoo

计算对象大小。

?

?

package com.taobao.ju.c2b.item.manager.impl;import com.taobao.ju.c2b.item.domain.ItemOnlineBO;import java.io.IOException;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.util.Date;public final class SizeCalculator {    public static int calcSize(java.io.Serializable o) {        int ret = 0;        class DumbOutputStream extends OutputStream {            int count = 0;            public void write(int b) throws IOException {                count++; // 只计数,不产生字节转移                }            }        DumbOutputStream buf = new DumbOutputStream();        ObjectOutputStream os = null;        try {            os = new ObjectOutputStream(buf);            os.writeObject(o);            ret = buf.count;            } catch (IOException e) {            // No need handle this exception            e.printStackTrace();            ret = -1;            } finally {            try {                os.close();                } catch (Exception e) {                }            }        return ret;        }    public static void main(String[] args){        ItemOnlineBO itemOnlineBO = new ItemOnlineBO();        itemOnlineBO.setActivityPrice(2012l);        itemOnlineBO.setOriginPrice(2012l);        itemOnlineBO.setAttributes("wewfefwewe");        itemOnlineBO.setBuyEndTime(new Date());        itemOnlineBO.setBuyStartTime(new Date());        itemOnlineBO.setCategoryId(2013l);        itemOnlineBO.setCommentary("wefwewewfe");        itemOnlineBO.setFollowEndTime(new Date());        itemOnlineBO.setFollowStartTime(new Date());        itemOnlineBO.setId(2013l);        itemOnlineBO.setItemId(2014l);        itemOnlineBO.setStatus(10);        itemOnlineBO.setTaobaoCategory(21001l);        itemOnlineBO.setUserId(21451l);        itemOnlineBO.setUmpId(5524411l);        itemOnlineBO.setSellerId(254111l);        System.out.println(calcSize(itemOnlineBO));        }}

读书人网 >编程

热点推荐