BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。
很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
但Beanutils.copyProperties( )可以代替这样繁琐的操作
举个简单的例子
先新建2个类
1、User类
public class User { private String id; private String username; private String password; private String role; private Integer limitTimes; private Integer number; private String questions; private Long startTime; private Long endTime; private String testUrl; private Long createTime; public User() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public Integer getLimitTimes() { return limitTimes; } public void setLimitTimes(Integer limitTimes) { this.limitTimes = limitTimes; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } public Long getStartTime() { return startTime; } public void setStartTime(Long startTime) { this.startTime = startTime; } public Long getEndTime() { return endTime; } public void setEndTime(Long endTime) { this.endTime = endTime; } public Long getCreateTime() { return createTime; } public void setCreateTime(Long createTime) { this.createTime = createTime; } public String getQuestions() { return questions; } public void setQuestions(String questions) { this.questions = questions; } public String getTestUrl() { return testUrl; } public void setTestUrl(String testUrl) { this.testUrl = testUrl; } }
2、UserVo
public class User { private String id; private String username; private String password; private String role; private Integer limitTimes; private Integer number; private String questions; private Long startTime; private Long endTime; private String testUrl; private Long createTime; public User() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public Integer getLimitTimes() { return limitTimes; } public void setLimitTimes(Integer limitTimes) { this.limitTimes = limitTimes; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } public Long getStartTime() { return startTime; } public void setStartTime(Long startTime) { this.startTime = startTime; } public Long getEndTime() { return endTime; } public void setEndTime(Long endTime) { this.endTime = endTime; } public Long getCreateTime() { return createTime; } public void setCreateTime(Long createTime) { this.createTime = createTime; } public String getQuestions() { return questions; } public void setQuestions(String questions) { this.questions = questions; } public String getTestUrl() { return testUrl; } public void setTestUrl(String testUrl) { this.testUrl = testUrl; } }
3、测试
@GetMapping("/test123456") public void test123456() { User user = new User(); user.setLimitTimes( 11 ); user.setStartTime( (long) 22 ); user.setEndTime( (long) 33 ); user.setId("66"); user.setUsername("zj"); user.setRole( "aaa" ); user.setCreateTime( (long) 77 ); user.setPassword("aaa"); user.setNumber( 1 ); user.setQuestions( "aaa" ); user.setTestUrl( "url" ); //以上为初始化 //法1 UserVo userVo= new UserVo(); userVo.setLimitTimes(user.getLimitTimes()); userVo.setStartTime( user.getStartTime()); userVo.setEndTime( user.getEndTime()); userVo.setId(user.getId()); userVo.setUsername(user.getUsername()); userVo.setRole( user.getRole() ); userVo.setCreateTime( user.getCreateTime() ); userVo.setPassword(user.getPassword()); userVo.setNumber( user.getNumber()); userVo.setQuestions( user.getQuestions() ); userVo.setTestUrl( user.getTestUrl() ); // 法2 UserVo userVo2= new UserVo(); BeanUtils.copyProperties(user,userVo2); System.out.println( "----" ); }
打个断点:
是不是Beanutils.copyProperties( ) 用起来很简单,方便呢:P