解决BeanUtils.copyProperties无法成功封装的问题
BeanUtils.copyProperties无法封装
使用
BeanUtils.copyProperties(user, memeber);
两个类中字段一样,但个别字段无法封装。
期初以为或许是字段的属性不同,仔细检查过还是一样,最后发现,是get、set方法名不同的原因。
如下
user里面有个字段为abc,他的get方法名为getABC();
member里面同样的字段abc,他的get方法名为getAbc();
最后导致abc的字段无法成功封装
BeanUtils.copyProperties出现了问题的原因
使用BeanUtils.copyProperties( dest, origin )时,
若出现如下问题:
java.lang.IllegalArgumentException: No origin bean specified
请检查 origin 对象是否为NULL
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决BeanUtils.copyProperties不支持复制集合的问题
工作中,经常使用Spring的工具类BeanUtils.copyProperties对bean属性进行复制,这里的复制属于浅复制.且不能复制集合和数组.本文会对该工具进行一些测试. 文末会提出复制集合属性的解决方案 准备工作:准备测试需要的类 @Data public class Class { private People[] member; private People teacher; private List<People> student; } @Data @NoArgsConstr
-
基于Spring BeanUtils的copyProperties方法使用及注意事项
如下所示: package com.demo; import lombok.Data; import org.springframework.beans.BeanUtils; import java.util.Arrays; import java.util.List; /** * @author xiaobu * @version JDK1.8.0_171 * @date on 2019/10/8 10:04 * @description */ public class BeanUtilsTe
-
BeanUtils.copyProperties在拷贝属性时忽略空值的操作
BeanUtils.copyProperties忽略空值 使用spring开发的人,对这行代码肯定不陌生,常用于DTO.VO.PO之间的复制. /** * 全属性copy对象 * **/ BeanUtils.copyProperties(Object source, Object target) 但这行代码会将所有的属性都进行copy,有的时候我们想要个别属性不进行复制(比如:null值属性),这时就需要用到另一个方法: /** * 忽略某些属性copy对象 * **/ BeanUtils.co
-
java Beanutils.copyProperties( )用法详解
这是一篇开发自辩甩锅稿~~~~ 昨天测试小姐姐将我的一个bug单重开了,emmmm....内心OS:就调整下对象某个属性类型这么简单的操作,我怎么可能会出错呢,一定不是我的锅!!but再怎么抗拒,bug还是要改的,毕竟晚上就要发版本了~~ 老老实实将我前天改的部分跟了一遍,恩,完美,没有任何的缺失~~but本应success的测试数据,接口返还的结果确实是false来着,那还是老老实实debug吧. 一步步跟下来,恩,多么顺畅,就说一定不是我的锅~~诶?不对不对,这里的ID值,为啥是null?传
-
解决Beanutils.copyproperties实体类对象不一致的问题
今天给大家分析一个解决Beanutils.copyproperties实体类对象名不一致的解决方法,一般我们在两个对象拷贝的问题上,我个人用的比较多的就是Beanutils.copyproperties,字段名如果不一致的话就去实体类中使用重载,把当前实体类的对象赋值给另外一个对象,也有用到set(),当然这些也都能解决Beanutils.copyproperties实体类属性不一致的问题,不过今天要给大家分享的是,不用set()和实体类的重构,使用类的反射机制去完成! 话不多说直接开始: 我是
-
java使用BeanUtils.copyProperties踩坑经历
1. 原始转换 提起对象转换,每个程序员都不陌生,比如项目中经常涉及到的DO.DTO.VO之间的转换,举个例子,假设现在有个OrderDTO,定义如下所示: public class OrderDTO { private long id; private Long userId; private String orderNo; private Date gmtCreated; // 省略get.set方法 } 有个OrderVO,定义如下所示: public class OrderVO { pr
-
如何使用BeanUtils.copyProperties进行对象之间的属性赋值
1.使用org.springframework.beans.BeanUtils.copyProperties方法进行对象之间属性的赋值,避免通过get.set方法一个一个属性的赋值 /** * 对象属性拷贝 <br> * 将源对象的属性拷贝到目标对象 * * @param source 源对象 * @param target 目标对象 */ public static void copyProperties(Object source, Object target) { try { BeanU
-
解决BeanUtils.copyProperties无法成功封装的问题
BeanUtils.copyProperties无法封装 使用 BeanUtils.copyProperties(user, memeber); 两个类中字段一样,但个别字段无法封装. 期初以为或许是字段的属性不同,仔细检查过还是一样,最后发现,是get.set方法名不同的原因. 如下 user里面有个字段为abc,他的get方法名为getABC(); member里面同样的字段abc,他的get方法名为getAbc(); 最后导致abc的字段无法成功封装 BeanUtils.copyPrope
-
解决BeanUtils.copyProperties之大坑
目录 BeanUtils.copyProperties大坑 BeanUtils.copyProperties() 用法及区别 因为两个类引入了两个不同的BeanUtils类 例如 BeanUtils.copyProperties大坑 两个不同的包(springframework , apache)中有一个相同名字的类,相同的方法,方法的作用相同,参数个数相同.就是参数位置不同,是相反的.? import org.springframework.beans.BeanUtils; import or
-
BeanUtils.copyProperties()拷贝id属性失败的原因及解决
目录 BeanUtils.copyProperties()拷贝id属性失败 部分代码如下 解决方法 BeanUtils.copyProperties 出错 BeanUtils.copyProperties()拷贝id属性失败 po类中id有值,但是使用BeanUtils.copyProperties()拷贝出的vo类id属性为null,检查后发现是因为po继承的父类声明了一个泛型. 部分代码如下 public abstract class AbstractEntity<ID extends Se
-
BeanUtils.copyProperties复制不生效的解决
目录 前言 问题的排查 问题的扩展 前言 呵呵 前端时间使用 BeanUtils.copyProperties 的时候碰到了一个这样的问题 我有两个实体, 有同样的属性, 一个有给定的属性的 getter, 另外一个有 给定的属性的 setter, 但是 我使用 BeanUtils.copyProperties 的时候 把来源对象的这个属性 复制不到 目标对象上面 然后 当时也跟踪了一下代码, 然后 这里整理一下 改代码片段吧 然后在调试的过程中 也发现了一些其他的问题, 呵呵 算是额外的了解吧
-
BeanUtils.copyProperties复制对象结果为空的原因分析
目录 BeanUtils.copyProperties复制对象结果为空原因 正确的包 错误的包 两个类的区别 BeanUtils.copyProperties拷贝没成功的坑,记录解决原因 具体如下 BeanUtils.copyProperties复制对象结果为空原因 细心比对,发现原来是导错了包导致的 正确的包 import org.springframework.beans.BeanUtils; 错误的包 import org.apache.commons.beanutils.BeanUtil
-
关于BeanUtils.copyProperties(source, target)的使用
BeanUtils.copyProperties 首先,使用的是org.springframework.beans.BeanUtils; source 来源, target 目标 顾名思义, BeanUtils.copyProperties(source, target); 第一个参数是需要拷贝的目标,第二个参数是拷贝后的目标. 因为这个方法有很多种情况,容易分不清,所以今天测了一下不同情况下的结果如何. 1.target里面有source里没有的属性 并且此属性有值时 2.target和sou
-
BeanUtils.copyProperties扩展--实现String转Date
BeanUtils.copyProperties(target,source)和PropertyUtils.copyProperties(target,source)都能将源对象的属性的值拷贝到目标对象相同属性名中. 区别在于: BeanUtils.copyProperties(target,source) 支持基础类型.String.java.sql.Date.java.sql.Timestamp.java.sql.Time之间的类型转换,即只要这些类型的属性名相同那么拷贝就能成功.但是会默认
随机推荐
- ajax传递多个参数具体实现
- AngularJS基础 ng-paste 指令简单示例
- javascript中有趣的反柯里化深入分析
- java中自定义Spring Security权限控制管理示例(实战篇)
- 入侵ASP.net网站的经验附利用代码
- 提示iis 无法启动World Wide Web Publishing服务的解决办法
- 详解Java编程中final,finalize,finally的区别
- Java BigDecimal类的使用和注意事项
- ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
- C#遍历系统进程的方法
- PHP判断远程图片是否存在的几种方法
- PHP iconv 解决utf-8和gb2312编码转换问题
- C#实现简单的汽车租赁系统
- 理解javascript正则表达式
- 原生js封装运动框架的示例讲解
- jQuery的each终止或跳过示例代码
- 详解js中==与===的区别
- javascript笔记 String类replace函数的一些事
- Java正则验证正整数的方法分析【测试可用】
- Web程序工作原理详解