zoukankan      html  css  js  c++  java
  • BeanUtils.copyProperties的用法

    实现原理

    原理 target.set + source的属性名(source.get + source的属性名):所有source必须有get方法,target必须有set方法

    一、

    springframework.beans.BeanUtils.copyProperties(A,B):把A对象的属性值赋给B对象相应的属性

    commons.beanutils.BeanUtils.copyProperties(A,B):把B对象的属性值赋给A对象相应的属性

    二、

    1、属性名相同,类型相同 可以被复制

    2、基本类型 与 其对应的封装类型 可以被复制

    3、封装类型 与 其对应的基本类型 可以被复制

    4、其他统统不行

    三、

    如果希望哪个属性不被复制,使用重载方法

    public static void copyProperties(Object source, Object target, String... ignoreProperties) throws BeansException

    ignoreProperties传属性名称

    四、

    BeanUtils.copyProperties对bean属性进行复制,这里的复制属于浅复制。且不能复制集合和数组

    方法1效率更高

    解决方法1;

    // 通过JSON工具实现List的复制(不仅仅是List,数组和Map等也可以通过类似方法实现复制,需要有无参构造方法,否则报错)

    如:

    import com.alibaba.fastjson.JSON;

    List<Dog> A= new ArrayList<>();

    List<Dog> B= new ArrayList<>();

    B = JSON.parseArray(JSON.toJSONString(A),Dog.class);

    方法2:循环BeanUtils.copyProperties来复制

     

  • 相关阅读:
    输入输出那些事
    NYOJ 20
    NYOJ 283
    HDU 1285
    HDU 2639(第K大背包)
    HDU 4288
    对Visual Studio C++ hash_map严谨一点的测试转载
    vc6,vc.net,vc7,vc8,vc9,c,c++,c#的区别与联系
    我在南大的七年刘末鹏
    慎用Visual Studio C++默认的hash_map转载
  • 原文地址:https://www.cnblogs.com/chao-zjj/p/9849881.html
Copyright © 2011-2022 走看看