使用Spring提供的BeanUtils.copyProperties()方法报错:Could not copy property ‘xxx’ from source to target; nested exception is java.lang.IllegalArgumentException
调用的方法: org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)
报错:
Could not copy property 'alwaysShow' from source to target; nested exception is java.lang.IllegalArgumentException
org.springframework.beans.FatalBeanException: Could not copy property 'alwaysShow' from source to target; nested exception is java.lang.IllegalArgumentException
at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:734) ~[spring-beans-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:646) ~[spring-beans-5.2.15.RELEASE.jar!/:5.2.15.RELEASE]
at org.tobacco.cigaretteqrcodebase.infrastructure.cigaretteqrcodebase.repository.SysPermissionRepositoryImpl.list(SysPermissionRepositoryImpl.java:190) ~[cigaretteqrcodebase-infrastructure-1.0.0.jar!/:na]
...
分析:
在使用Spring提供的BeanUtils.copyProperties(Object source, Object target)方法时,如果target中的属性含有基本类型,而source中对应的属性值为null,则copy时,就相当于给一个基本类型赋值null,故报错。
解决方法:
javaBean的属性类型使用包装类型,不要使用基本类型。