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来复制

     

  • 相关阅读:
    linux学习笔记
    HDMI之CEC DDC学习笔记(可能有误)
    MAP按照value排序
    Map遍历四种方法
    Java native方法
    [PAT] 1143 Lowest Common Ancestor (30 分)Java
    [PAT] 1148 Werewolf
    [PAT] 1096 Consecutive Factors (20 分)Java
    [PAT] 1092 To Buy or Not to Buy (20 分)Java
    [PAT] 1088 Rational Arithmetic (20 分)Java
  • 原文地址:https://www.cnblogs.com/chao-zjj/p/9849881.html
Copyright © 2011-2022 走看看