游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

比较两个JavaBean属性是否相同

  最近有个需求,需要记录数据修改前后的变化值。所以就想,通过反射的方式前后两个JavaBean对比一下属性来实现。其中主要功能包括:对比出修改的数据,并知道其修改前后的值;可以对一些字段进行屏蔽,不做比较字段属性要能知到其业务含义,在页面展示。
  基于以上的要求首先创建一个工具类:publicclassObjCompareUtil{比较两个实体属性值,返回一个map以有差异的属性名为key,value为一个Map分别存oldObject,newObject此属性名的值paramoldObject进行属性比较的对象1paramnewObject进行属性比较的对象2paramignoreArr忽略比较的字段return属性差异比较结果mappublicstaticMapString,ListObjectcompareFields(ObjectoldObject,ObjectnewObject,booleanuserAnno,String〔〕ignoreArr){try{MapString,ListObjectmapnewHashMap();ListStringignoreListnull;if(ignoreArr!nullignoreArr。length0){array转化为listignoreListArrays。asList(ignoreArr);}if(oldObject。getClass()!newObject。getClass()){returnmap;}ClassclazzoldObject。getClass();获取object的属性描述PropertyDescriptor〔〕pdsIntrospector。getBeanInfo(clazz,Object。class)。getPropertyDescriptors();这里就是所有的属性了for(PropertyDescriptorpd:pds){属性名Stringnamepd。getName();if(ignoreList!nullignoreList。contains(name)){如果当前属性选择忽略比较,跳到下一次循环continue;}get方法MethodreadMethodpd。getReadMethod();获取值ObjectoldValuereadMethod。invoke(oldObject);ObjectnewValuereadMethod。invoke(newObject);获取注解备注if(userAnno){根据字段名来获取字段Fieldfclazz。getDeclaredField(name);FieldInfoannotationf。getAnnotation(FieldInfo。class);if(annotation!null){nameannotation。desc();}}放置结果if(oldValuenull!oldValue。equals(newValue)){ListObjectlistnewArrayList(2);list。add(oldValue);list。add(newValue);map。put(name,list);}}returnmap;}catch(Exceptione){returnnull;}}}
  其次,开发一个自定义注解,用来标注属性的含义:Target({ElementType。FIELD,ElementType。TYPE})Retention(RetentionPolicy。RUNTIME)DocumentedpublicinterfaceFieldInfo{Stringdesc()default;}
  接下来做一个测试,首先定义一个实体类:DataAllArgsConstructorNoArgsConstructorpublicclassUser{privateStringname;FieldInfo(desc年龄)privateIntegerage;privateBytestatus;privateDatebirthday;}
  跑一个main方法做一下测试:publicstaticvoidmain(String〔〕args)throwsInterruptedException{Useruser1newUser(liwei,18,(byte)1,newDate());Thread。sleep(100);Useruser2newUser(liwei,19,(byte)1,newDate());String〔〕ignor{age};MapString,ListObjectstringListMapObjCompareUtil。compareFields(user1,user2,true,null);System。out。println(stringListMap);}
  输出结果:{birthday〔WedJan2622:42:26CST2022,WedJan2622:42:26CST2022〕,年龄〔18,19〕}
  结果符合预期!

英特尔新处理器部分交由台积电代工据我国台湾中时新闻网5月29日报道,英特尔首席执行官基辛格(PatGelsinger)日前出席摩根大通会议时指出,英特尔7纳米制程MeteorLake处理器计算区块(compu……中关村创客小镇打造数智港助力产业振兴中关村创客小镇作为数字经济产业园运营服务创新载体,将携手园区企业及生态合作伙伴共同为区域产业数字化转型升级提供数字化赋能解决方案。12月30日,由中关村创客小镇主办,国电投综合……王思聪是一个怎样的人?典型的以资本做后盾的富家公子,很可能背后是美西方资本,必须高度警惕这种人利用资本的力量收买国家有关部门的公务人员,干损害国家利益的事。从这次莲花清瘟事件来看,王大公子很不……你的苹果手机戴口罩可以人脸解锁手机吗?你的苹果手机戴口罩可以人脸解锁手机吗?今天没事在苹果手机设置,面容与id里发现苹果手机可以录入备用面容,就想备用面容可以戴口罩录入吗?如果可以不就能戴口罩解锁了吗?……事发南京!特斯拉路口突然加速,连撞四车5月28日下午南京定淮门大街与江东北路交叉路口发生惊魂一幕一辆特斯拉轿车没有正常停车等信号灯反而突然加速连撞路上四辆车今天上午,……Go玩转gRPC通信欢迎地鼠同胞!很多人要求我写一篇关于gRPC主题的教程,以及如何在Go中编写自己的基于gRPC的系统。因此,在本教程中,我们将深入了解gRPC精彩而令人兴奋的世界,并探索我们如……两大安卓旗舰同期开售,华为销量不理想,最受伤的却是Phone按照往年的惯例来说,9月份才是手机圈子里最盛大的环节,iPhone每年9月发布新品都会引起行业动荡,被网友戏称为机圈春晚,不过近些年国产手机在技术和设计等方面都有了重大提升,分……腾讯分分彩侵害商标权及不正当竞争纠纷案原告:腾讯科技公司、腾讯计算机公司、腾讯数码公司被告:溪潮公司【基本案情】腾讯科技公司系第5101945号和第5101976号图形商标的注册人。第510194……周照峰互联网行业并非反垄断重灾区,系长期未申报积累所致新京报贝壳财经讯(记者孙文轩白金蕾)4月15日,斐石律师事务所管理合伙人、北京律师协会竞争与反垄断委员会副主任周照峰律师在新京报反垄断如何助力建设统一大市场论坛上表示,互联网行……新能源车补贴政策首次纳入信息安全三六零迎双重利好中新经纬1月7日电2021年最后一天,新能源汽车补贴新政正式落地。财政部、工信部、科技部、发改委四部门联合发布《关于2022年新能源汽车推广应用财政补贴政策的通知》(以下简称通……红米Note11Pro曝光,6000mAhOLED屏,价格亲小米作为国产手机品牌之一,一直以来都备受消费者青睐,不管是旗舰机还是中低端机销量都很不错。一般经济基础比较好的会选择旗舰机,因为它处于高端水准;而一般经济基础不怎么好的都会选择……微信开发者工具如何使用?具体哪些步骤微信开发者工具一般由于小程序包的上传与发布。但是由于技术的发展,一些智能型平台已经实现与第三方平台接口对接,已实现一键发布,告别通过开发者工具进行传输。但为了小部分的需求……
Mobileye采埃孚中标丰田全系新车,L2L2市场红利爆发随着高阶自动驾驶陆续在全球范围内进入量产周期,满足法规要求的ADAS(自动辅助驾驶)系统市场也在暗潮涌动,新一轮供应商更替也在进行中。近日,全球最大汽车制造商丰田汽车宣布……曝iPhone14将搭载京东方6。1寸OLED国产屏连续供应在最新一篇报道中,媒体称继iPhone12、13后,京东方将会继续为苹果下一代手机也就是iPhone14供应OLED显示屏。由于京东方尚未商用量产拥有自适应刷新率LTPO……为什么有些WIFI不能用万能钥匙搜索到?怎么才能破解邻居家的在探讨这个问题前,我们先了解一下Wifi万能钥匙为何能够破解别人密码。严格来说,诸如Wifi万能钥匙,还有Wifi共享精灵这类的App,并不具备破解别人Wifi密码的能力……华为系手机和段永平系手机,谁会发展的更好?一年时间在手机圈基本上就是一代产品的更新迭代,就目前来看,华为系手机和段永平系手机的发展基调都初步定好了,但一年足足365天,还是有很多不确定因素,就目前的发展情况来看,大家五……云闪付微信支付宝付款哪个最好用?微信。只要卡里有足够的钱,咋付款都好使。卡里就那么几百几十块钱,与支付形式没啥关系!习惯用微信了,比较方便。我习惯于用微信,觉得微信挺方便的。三个软件都……Gopro和手机相比拍摄的视频有多大的差距?gopro这类运动摄像机,经常会用来和手机对比拍摄视频的质量。其实如果从拍摄视频的画质上来看,gopro与手机属于一个档次的,并没有因为它是一个专门的摄像机,画质就有多大的优势……饿了么和美团外卖的战争结束了吗?它们的结束会随着交通事故的频发而结束,美团和饿了么的配送是交通法规的肆意破坏者,是既定交通规则的严重践踏者,无处不在的外卖配送违章,完全无视交通安全,脏兮兮的外套八年都不会洗一……疯狂的电话推销机器人一天拨号上千次,未婚被推销孩子辅导班中新经纬客户端5月24日电(常涛高铂宁)某辅导机构给我打了无数次电话,每次都说让我带着孩子去免费试听。我说我都没结婚,哪来的孩子?!别再来打扰我了!结果电话那头很客气地说,您的……充电桩龙头开始挣钱了!15大玩家将迎洗牌,特斯拉技术最领先车东西(公众号:chedongxi)文Bear新能源汽车补贴作为我国政府对新能源汽车产业的大力扶持政策,自出台以来,对整个新能源汽车及其上下游产业起到了巨大的推动作用,新……hellomoto,你能让联想重回手机舞台的中央吗?很难,发布的这几款手机中规中矩,除了价格,几乎没有亮点。在大众更加注重互动体验的今天,还把宣传的重点放在硬件上,也不算精彩。简单粗暴地低价政策确实可以聚扰人气,扰动市场,短期很……请问用微信很少语音而且打字不喜欢打错别字的是什么样的人?能说我就是这样的人,而且比较极端,几乎从不用语音,一直是用文字:不管是在微信群里讨论工作,还是跟家人聊天,通通都是打字。我一直没注意,朋友提醒我,说我哪怕打一个字,都要……知名通信专家对四大通信运营商预测末来探索推进网业分离异网漫游知名通信专家对四大通信运营商发展趋势预判来源:澎湃新闻2022年即将到来,资深电信分析师、中国通信行业知名作家尚晓蒲,对四大通信运营商未来发展趋势简要分析预判,以下……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网