架构师之对象操作----------对象的效率复制和判断是否全为空

1.前言。
  如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
Src src=new Src();
BeanCopier beanCopier = BeanCopier.create(Src.class, Des.class, false);
        Des des = new Des();
        beanCopier.copy(src, des, null);

(2)对象的属性是否全为空,DTO时有用。
/**
     * 
     * Description:除开序列化id其他全部为空的对象,返回空
     * @param obj
     * @return
     * boolean
     */
    public static boolean ifAllNull(Object obj)
    {
        try
        {
            if(null==obj){
                return true;
            }
            for (Field f : obj.getClass().getDeclaredFields())
            {
                f.setAccessible(true);
                if (f.get(obj) != null&&!f.getName().equals("serialVersionUID"))
                { // 判断字段是否为空,并且对象属性中的基本都会转为对象类型来判断
                    return false;
                }
            }
        }
        catch (Exception e)
        {
            logger.error(e.getMessage(), e);
        }
        return true;
    }

你可能感兴趣的:(架构师)