zoukankan      html  css  js  c++  java
  • java 实体bean互相复制工具类

    注意:背赋值的bean不要加上 @Accessors(chain = true) 注解


    import org.springframework.cglib.beans.BeanCopier;

    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;


    public class BeanCopierUtils {

    // 创建过的BeanCopier实例放到缓存中,下次可以直接获取,提升性能
    static final Map<String, BeanCopier> BEAN_COPIERS = new ConcurrentHashMap<String, BeanCopier>();


    public static Object copy(Object srcObj, Object destObj) {

    String key = genKey(srcObj.getClass(), destObj.getClass());
    BeanCopier copier = null;

    if (!BEAN_COPIERS.containsKey(key)) {
    copier = BeanCopier.create(srcObj.getClass(), destObj.getClass(), false);
    BEAN_COPIERS.put(key, copier);
    } else {
    copier = BEAN_COPIERS.get(key);
    }
    copier.copy(srcObj, destObj, null);
    return destObj;
    }

    private static String genKey(Class<?> srcClazz, Class<?> destClazz) {
    return srcClazz.getName() + destClazz.getName();
    }
    }
  • 相关阅读:
    Swoole 协程使用示例及协程优先级
    Swoole 协程简介
    Laravel Redis分布式锁的使用
    Laravel Redis分布式锁实现源码分析
    Swoole 中使用异步任务
    runtime相关面试
    oc笔试题
    属性关键字面试题
    KVC面试题
    KVO面试题
  • 原文地址:https://www.cnblogs.com/bt2882/p/12808219.html
Copyright © 2011-2022 走看看