计算对象大小。
?
?
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)); }}