admin管理员组文章数量:1794759
bean反射比较两个bean属性值的修改明细
1.期望:将【username】从'111'改成'222';将【address】从'这是一个测试数据'改成'这是一个真实数据';
2.导入jar
代码语言:javascript代码运行次数:0运行复制 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apachemons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
3.model类
代码语言:javascript代码运行次数:0运行复制public class UserModel {
private String username;
private String sex;
private String age;
private String address;
@Override
public String toString() {
return "UserModel [username=" + username + ", sex=" + sex + ", age="
+ age + ", address=" + address + "]";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
4.对比类及测试方法
代码语言:javascript代码运行次数:0运行复制public class MyBeanCompareTest {
public static void main(String[] args) throws Exception {
UserModel oldData = new UserModel();
oldData.setUsername("111");
oldData.setAddress("这是一个测试数据");
UserModel newData = new UserModel();
newData.setUsername("222");
newData.setAddress("这是一个真实数据");
String desc = compare(oldData, newData);
System.out.println(desc);
}
private static String compare(UserModel oldData, UserModel newData) throws Exception {
StringBuffer content = new StringBuffer();
Class clazz = newData.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
// with modifiers "private"
ReflectionUtils.makeAccessible(field);
Object newValue = field.get(newData);
System.out.print("fieldName="+field.getName()+",fieldValue="+String.valueOf(newValue));
Object oldValue = field.get(oldData);
System.out.println("\tfieldName="+field.getName()+",fieldValue="+String.valueOf(oldValue));
if(newValue != null && newValue != oldValue){
content.append("将【");
content.append(field.getName());
content.append("】");
content.append("从'");
content.append(String.valueOf(newValue));
content.append("'改成'");
content.append(String.valueOf(oldValue));
content.append("';");
}
}
return content.toString();
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2020-07-05,如有侵权请联系 cloudcommunity@tencent 删除反射数据appendpublicstring本文标签: bean反射比较两个bean属性值的修改明细
版权声明:本文标题:bean反射比较两个bean属性值的修改明细 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754991608a1709160.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论