架构师之对象操作-对象的效率复制跟判断是否全为空
架构师之对象操作----------对象的效率复制和判断是否全为空
1.前言。
如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
(2)对象的属性是否全为空,DTO时有用。
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; }