1.期望:将【username】从'111'改成'222';将【address】从'这是一个测试数据'改成'这是一个真实数据';

2.导入jar

     <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.21.RELEASE</version>
</dependency> <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>

3.model类

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.对比类及测试方法

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();
} }

bean反射比较两个bean属性值的修改明细的更多相关文章

  1. 使用java中的反射获得object对象的属性值

    知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的ge ...

  2. Java反射交换两个整型变量的值

    在一次面试中,做了这么一道题"交换两个整型变量的值",当时看到这个题目之后,会心一笑,这也太简单了--直接使用中间变量交换不就可以了吗?但是,面试官却说不需要返回值,在调用的地方, ...

  3. java通过反射将对象A得属性值赋值给对象B

    java通过反射将对象A得属性值赋值给对象B //测试类1public class Test1 { private String name; private String sex; private i ...

  4. 【小家Spring】老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?

    #### 每篇一句 > 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 #### 相关阅读 [[小家Spring]详解Propert ...

  5. @ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?

    每篇一句 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 相关阅读 [小家Spring]详解PropertyPlaceholderConf ...

  6. 用反射的形式将一个对象属性值赋值给另一个对象,省略点get/set方法的冗余代码

    1.本例使用的是idea 首先需要在idea中安装lombok插件,省略getter和setter方法的书写 在maven项目中加入lombok依赖 <dependency> <gr ...

  7. Java反射获取对象VO的属性值(通过Getter方法)

    有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个 ...

  8. 通过反射将一个java对象的属性值转换为一个Map

    将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...

  9. java 通过反射获取和设置对象属性值

    public static Object parseDate(Object object){ SimpleDateFormat sdf = new SimpleDateFormat("yyy ...

  10. java 反射获取类的静态属性值

    public class AppTest { private NodeClass nodeClass; public static String hehe = "hehe"; pu ...

随机推荐

  1. 基于Serverless的云原生转型实践

    简介: 新一代的技术架构是什么?如何变革?是很多互联网企业面临的问题.而云原生架构则是这个问题最好的答案,因为云原生架构对云计算服务方式与互联网架构进行整体性升级,深刻改变着整个商业世界的 IT 根基 ...

  2. 如何开发 Node.js Native Add-on?

    简介: 来一起为 Node.js 的 add-on 生态做贡献吧~ 作者 | 吴成忠(昭朗) 这篇文章是由 Chengzhong Wu (@legendecas),Gabriel Schulhof ( ...

  3. 全球首款乘云而来的存储产品CDS诞生!

    ​9月22日,阿里云发布全球首款"云定义存储"(Cloud Defined Storage,CDS)产品.作为一款本地部署的分布式存储产品,阿里云CDS拥有与公共云存储相同的技术架 ...

  4. DataWorks 功能实践速览03期 — 生产开发环境隔离

    ​简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 往期回顾: DataWorks 功能实践速览01期--数据同步解决方案:为您介绍不同场景下可选的数据同 ...

  5. [PPT] WPS 提取 PPT 中的母版到另一份 PPT 中

    1. 打开 PPT. 2. 视图 - 幻灯片母版,在第一个 ppt 上面 "鼠标右键 - 复制" 来进行拷贝. 3. 打开目标 PPT,视图 - 幻灯片模板,快捷键 Ctrl + ...

  6. WPF 在 .NET Core 3.1.19 版本 触摸笔迹偏移问题

    在更新到 .NET 6 发布之前的,在 2021.11.02 的 .NET Core 版本,都会存在此问题.在 WPF 应用里面,如果在高 DPI 下,进行触摸书写,此时的笔迹将会偏移.核心原因是在这 ...

  7. OLAP系列之分析型数据库clickhouse主从副本模式(三)

    一.测试单分片,单副本或多副本模式 # 1.停止集群 systemctl stop clickhouse-server # 修改配置文件 vim /etc/clickhouse-server/conf ...

  8. pde复习笔记 第一章 波动方程 第三节 分离变量法

    教材 谷超豪<数学物理方程>第四版,虽然我们老师用的第三版,但是除了页码对不上,习题多了一点,也似乎没有多少区别. 打算开个新栏专门总结一下pde的各种计算问题,在图书馆算的手麻了,但是习 ...

  9. 模型微调-书生浦语大模型实战营学习笔记4&大语言模型7

    大语言模型-7.模型微调 书生浦语大模型实战营学习笔记-4.模型微调 本节对应的视频教程为B站链接.笔记对视频的理论部分进行了整理.部分内容参考李宏毅2024春<生成式人工智能导论>和三分 ...

  10. pageoffice6实现Word在线套打

    使用Word可以套打,其实套打一般就是将要打印的内容分毫不差的打印到已有的模板中去,比如奖状.证书.票据.报表等都可以使用套打完成. 方法一: 将Word页面排版的和打印纸中的页面完全相同,然后将打印 ...