场景:当需要对比两个对象的哪些字段的value值不同时,使用
原理: 通过反射来获取对象中每个字段的value值,进行对比
1.获取需要比对对象的Class对象
比对的是obpPurQualityCheckTaskItem和obpPurQualityTaskItemExportDto对象,但因为他们是两个不同的类,所以都需要获取
2.获取需要比对的对象中的字段
注:getDeclaredField(参数)是获取对象的指定的参数的字段,
getDeclaredFields是获取对象的所有字段
(1) 获取对象中的所有字段
(2)获取某些指定的字段
1.先定义一个字符串数组,该数组中包括了需要对比的字段名
2.定义类型为Field的集合,用于字段的存储
3.循环filedNames数组,使用class的getDeclaredField方法获取对应类的字段名
3.获取存储字段的集合的下标值,比对字段值
通过下标获取到fields 和 fieldExports的字段的field类,使用Field的get方法获取到字段值
其中,
value1,value2为对应的字段值
下述代码是为了获取到实体类的Schema的注解中的description参数的值,该值一般为描述字段的中文意思
总结:
1.先获取到比对对象的类
2.确定需要比对的字段,(1)全部都比对(2)固定字段比对
3.循环field集合,使用field的get方法,分别传入比对的对象作为参数,获取对应的字段的值,进行比较
标签:段值,java,field,对象,value,获取,字段 From: https://www.cnblogs.com/123-hh/p/18453684