本文主要是介绍BeanUtils.copyProperties(src,target) 无法赋值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天遇到一个很诡异的问题src的属性和target属性一模一样但就是无法赋值,target所有的属性都为null
因为是实际项目,只上部分与这个问题相关的代码
src 为来自页面的VO 使用
@Data
@Accessors(chain = true)
public class TestSearchVo {// 关键字查询private String keyword;// 查询人private String creator;// 查询人角色private Boolean roleStatu;// 关联机构IDprivate Integer institutionId;}
target为与数据库表对应的实体类
@Getter
@Setter
@Accessors(chain = true)
public class User {// 关键字查询private String keyword;// 查询人private String creator;// 查询人角色private Boolean roleStatu;// 关联机构IDprivate Integer institutionId;// 创建时间private Date createTime;}
BeanUtils.copyProperties(src,target)部分代码
无论怎么执行始终赋值不成功 经过断点调试发现,下图的getPropertyUtils().isWriteable(dest, name) 始终为false
后来揣测应该是下图出现问题,因为我在目标属于使用了
@Accessors(chain = true) 可能会导致每次目标变量取出的是一个对象,所以属性无法继续赋值写入,因为项目刚开始开发,后面完成以后再回来总结
你可能会好奇这个属性有什么作用其实就是为了代码的一个简洁性和美观性,下面截图说明,注意需要配合lombok插件的@Getter和@Setter或者@Data使用
具体的关于lombk插件使用 可以参考我这篇文章:https://blog.csdn.net/u011665991/article/details/83893499
这篇关于BeanUtils.copyProperties(src,target) 无法赋值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!