日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java高级反射(一),通过反射批量修改属性值set,get方法 Field,对属性值进行统一操作

發(fā)布時(shí)間:2024/3/24 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java高级反射(一),通过反射批量修改属性值set,get方法 Field,对属性值进行统一操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通過反射批量修改屬性值set,get方法 Field

需求說明:對(duì)接一個(gè)系統(tǒng),對(duì)方系統(tǒng)要求每個(gè)字段value值加密,加密方法為WebAppAESUtil.encrypt,做之前就想做一個(gè)對(duì)屬性統(tǒng)一操作的一個(gè)方法,反射完美的解決了這個(gè)問題,類似需求可以這樣操作,下面是代碼,反射是個(gè)好東西

反射工具類
import lombok.extern.slf4j.Slf4j;import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List;/*** 類 名: FieldReflection* 描 述:* 作 者: binglong180* 創(chuàng) 建: 2020-07-02 11:23* 郵 箱: binglong172@163.com*/ @Slf4j public class ReflectionUtils {public static Object FieldReflection(Object oldObj) throws Exception{// 獲取對(duì)象所有的實(shí)例域Field[] fields = oldObj.getClass().getDeclaredFields();// 獲得訪問私有實(shí)例域的權(quán)限AccessibleObject.setAccessible(fields, true);for (Field field : fields) {Class<?> type = field.getType();if ("String".equals(type.getSimpleName())) {Object obj = field.get(oldObj);if (obj != null) {String str = obj.toString();field.set(oldObj,WebAppAESUtil.encrypt(str));}}if ("CompanyDTO".equals(type.getSimpleName())){CompanyDTO companyDTO = (CompanyDTO) field.get(oldObj);if (companyDTO != null){companyDTO = (CompanyDTO) FieldReflection(companyDTO);field.set(oldObj,companyDTO);}}if ("List".equals(type.getSimpleName())){List<UserInfoDTO> userInfoDTOList = (List<UserInfoDTO>) field.get(oldObj);if (userInfoDTOList != null && userInfoDTOList.size()>0){List<UserInfoDTO> userInfoList = new ArrayList<>();for (UserInfoDTO item: userInfoDTOList ){if (item != null){item = (UserInfoDTO) FieldReflection(item);userInfoList.add(item);}}field.set(oldObj,userInfoList);}}}return oldObj;}}
1、ServiceDTO 實(shí)體類 有List 屬性 及CompanyDTO 屬性
import lombok.Data; import org.springframework.beans.factory.annotation.Autowired;import java.util.List;/*** 服務(wù)申請(qǐng)接口請(qǐng)求參數(shù)字段*/ @Data public class ServiceDTO {private CompanyDTO nytsydcompanyrequest;//用電企業(yè) 必選:trueprivate List<UserInfoDTO> nytsuserrequest;//用戶 必選:true nytsuserrequest;//電站信息表 必選:trueprivate NytsPartnetDTO nytsPartnet;private String debUserId;//電e寶用戶編號(hào) 必選:trueprivate String debSessionId;//會(huì)話id 必選:trueprivate String timeStamp;//當(dāng)前時(shí)間的毫秒值 必選:trueprivate String discountType;//優(yōu)惠類型 必選:true 1固定折扣金額 ,2無折扣(固定電價(jià)),3固定優(yōu)惠金額 ,4先減再乘,5先乘再減。private String status;//狀態(tài) 必選:true 1正常 2失效private String startTime;//合同開始日期 必選:true 取合同相關(guān)信息private String endTime;//合同結(jié)束日期 必選:true 取合同相關(guān)信息private String billDay;//賬單日必選:trueprivate String pvTopPrice;//光伏支付工廠尖電價(jià) 必選:true 錄入private String pvPeakPrice;//光伏支付工廠峰電價(jià) 必選:true 錄入private String pvFlatPrice;//光伏支付工廠平電價(jià) 必選:true 錄入private String pvBottomPrice;//光伏支付工谷尖電價(jià) 必選:true 錄入private String factoryTopPrice;//工廠支付光伏尖電價(jià) 必選:true 無信息,不傳遞private String factoryPeakPrice;//工廠支付光伏尖電價(jià) 必選:true 無信息,不傳遞private String factoryFlatPrice;//工廠支付光伏尖電價(jià) 必選:true 無信息,不傳遞private String factoryBottomPrice;//工廠支付光伏尖電價(jià) 必選:true 無信息,不傳遞private String fdHouseNumber;//發(fā)電戶號(hào) 必選:true 錄入private String preferential;//優(yōu)惠(減多少) 必選:true 默認(rèn)初始值:0private String discount;//折扣(打幾折乘以多少)private String signTime;//合同簽訂日期private String image;//合同附件 格式為png轉(zhuǎn)base64private String remark;//合同說明private String lastUpdateTime;//上次更新時(shí)間private String ydHouseNumber;//用電戶號(hào)錄入public static ServiceDTO getInitModel(){ServiceDTO serviceVo = new ServiceDTO();serviceVo.setChannelType("03");serviceVo.setStatus("1");serviceVo.setDiscountType("2");serviceVo.setPreferential("0");long timeMillis = System.currentTimeMillis();serviceVo.setTimeStamp(String.valueOf(timeMillis));// String token = cacheStore.getTokenCache().get(current.getId());// serviceVo.setDebSessionId(token);return serviceVo;} }
CompanyDTO 類
import lombok.Data;/*** 用電企業(yè)字段*/ @Data public class CompanyDTO {private String companyType;//公司類型 必選:true 1發(fā)電企業(yè) 2用電企業(yè)private String companyName;//公司名稱 必選:true 取業(yè)主名稱(錄入或合同)private String groupCompany;//集團(tuán)公司 必選:true 1隸屬集團(tuán)公司,2不是集團(tuán)公司private String bankName;//開戶行名稱 必選:trueprivate String orgCode;//組織信用代碼(統(tǒng)一社會(huì)信用代碼) 必選:true 取業(yè)主統(tǒng)一社會(huì)信用代碼(錄入或企業(yè)認(rèn)證)private String bankAccount;//銀行賬戶 必選:trueprivate String address;//公司地址private String legalPerson;//公司法人 取業(yè)主法人姓名(錄入或企業(yè)認(rèn)證)private String telPhone;//公司聯(lián)系電話private String province;//省 取企業(yè)認(rèn)證申請(qǐng)時(shí)錄入的相關(guān)信息private String city;//市 取企業(yè)認(rèn)證申請(qǐng)時(shí)錄入的相關(guān)信息private String area;//區(qū) 取企業(yè)認(rèn)證申請(qǐng)時(shí)錄入的相關(guān)信息}
運(yùn)行后效果
加密前: {"billDay": null,"channelType": "03","debSessionId": null,"debUserId": "00158368","discount": null,"discountType": "2","endTime": "2020-06-01","factoryBottomPrice": null,"factoryFlatPrice": null,"factoryPeakPrice": null,"factoryTopPrice": null,"fdHouseNumber": "132","image": null,"lastUpdateTime": null,"nytsPartnet": {"partnetname": ""},"nytsfdcompanyrequest": {"address": "天津市,市轄區(qū),和平區(qū)","area": null,"bankAccount": "6272000020006544121","bankName": "工商銀行","city": null,"companyName": "上海御漏管道工程有限公司","companyType": "1","groupCompany": "2","legalPerson": "蘭蘭","orgCode": "310118003050098","province": null,"telPhone": "13351111111"},"nytspowerstationrequest": {"address": "123","areaCode": "00168361","capacity": "10000.0000","fdHouseNumber": null,"nytspowerstationservicerequest": {"orderTime": null,"servicePeriod": "10","status": "1","termValidity": "2030-06-16","unitPrice": null},"stationName": null,"stationType": null},"nytsuserrequest": [{"address": null,"birthday": null,"contentType": "1","email": null,"idCard": null,"idCorwardImg": null,"idReverseImg": null,"nation": null,"nickName": null,"phone": "13351111111","photoUrl": null,"realName": null,"sex": null,"userType": "00","wechat": null}, {"address": null,"birthday": null,"contentType": "2","email": null,"idCard": null,"idCorwardImg": null,"idReverseImg": null,"nation": null,"nickName": null,"phone": "13351111111","photoUrl": null,"realName": null,"sex": null,"userType": "00","wechat": null}],"nytsydcompanyrequest": {"address": "天津市,市轄區(qū),和平區(qū)","area": null,"bankAccount": "6272000020006544121","bankName": "工商銀行","city": null,"companyName": "上海御漏管道工程有限公司","companyType": "2","groupCompany": "2","legalPerson": "蘭蘭","orgCode": "310118003050098","province": null,"telPhone": "13351111111"},"preferential": "0","pvBottomPrice": "10.0","pvFlatPrice": "10.0","pvPeakPrice": "10.0","pvTopPrice": "10.0","remark": null,"signTime": null,"startTime": "2020-05-01","status": "1","timeStamp": "1593655856654","ydHouseNumber": "132" }加密后{"billDay": null,"channelType": "fcc1b6a60f46587174758d8732e8e462","debSessionId": null,"debUserId": "9a47daef5afeae59dd2743c0004c4bba","discount": null,"discountType": "1a3da64489b8c6722dafbad407691469","endTime": "171ae7996c4e06809d6ba84537b50c4e","factoryBottomPrice": null,"factoryFlatPrice": null,"factoryPeakPrice": null,"factoryTopPrice": null,"fdHouseNumber": "01e6db51b86d93ab6c3e82aa7615517d","image": null,"lastUpdateTime": null,"nytsPartnet": {"partnetname": "f9f5f4174d957aea15993b7e0d513ae6"},"nytsfdcompanyrequest": {"address": "b5cb9ce0779ef9eec64cb929c0304d99bb4620cffea9fa9176274ac07034aae6","area": null,"bankAccount": "4adc65a091aa74a60b4c311f697a39db57782e365ff7b846416d0c6463551d3d","bankName": "3a2519ef5285fb116fd38c111f4bb4c6","city": null,"companyName": "4a43479c06b3a226eb8fbea379097a1194296bb2ef4fca20beb000c34c8d31ca3d1243347193bdc44070027ad9116854","companyType": "8823fb5b75bf0b2b4b19a6d85e3bfce4","groupCompany": "1a3da64489b8c6722dafbad407691469","legalPerson": "a96ae23fa6279259a481f98c0272df84","orgCode": "91b387200bc3e768c33ef86404a251ee","province": null,"telPhone": "f244afac5cb1e511b3ebc51b2982b322"},"nytspowerstationrequest": {"address": "bb9e08229faca7138fc2e64f5d5e58af","areaCode": "f751ecf3877db29f985c2249788863ff","capacity": "cdb31240a0568d01ff9df18e46a11499","fdHouseNumber": null,"nytspowerstationservicerequest": {"orderTime": null,"servicePeriod": "890bb0e5fc386329d9e582bd600ccd0e","status": "8823fb5b75bf0b2b4b19a6d85e3bfce4","termValidity": "3b0e0990362adfaf1087d06a63241cb6","unitPrice": null},"stationName": null,"stationType": null},"nytsuserrequest": [{"address": null,"birthday": null,"contentType": "8823fb5b75bf0b2b4b19a6d85e3bfce4","email": null,"idCard": null,"idCorwardImg": null,"idReverseImg": null,"nation": null,"nickName": null,"phone": "f244afac5cb1e511b3ebc51b2982b322","photoUrl": null,"realName": null,"sex": null,"userType": "751f67e04de34515ef48ab063a68815e","wechat": null}, {"address": null,"birthday": null,"contentType": "1a3da64489b8c6722dafbad407691469","email": null,"idCard": null,"idCorwardImg": null,"idReverseImg": null,"nation": null,"nickName": null,"phone": "f244afac5cb1e511b3ebc51b2982b322","photoUrl": null,"realName": null,"sex": null,"userType": "751f67e04de34515ef48ab063a68815e","wechat": null}],"nytsydcompanyrequest": {"address": "b5cb9ce0779ef9eec64cb929c0304d99bb4620cffea9fa9176274ac07034aae6","area": null,"bankAccount": "4adc65a091aa74a60b4c311f697a39db57782e365ff7b846416d0c6463551d3d","bankName": "3a2519ef5285fb116fd38c111f4bb4c6","city": null,"companyName": "4a43479c06b3a226eb8fbea379097a1194296bb2ef4fca20beb000c34c8d31ca3d1243347193bdc44070027ad9116854","companyType": "1a3da64489b8c6722dafbad407691469","groupCompany": "1a3da64489b8c6722dafbad407691469","legalPerson": "a96ae23fa6279259a481f98c0272df84","orgCode": "91b387200bc3e768c33ef86404a251ee","province": null,"telPhone": "f244afac5cb1e511b3ebc51b2982b322"},"preferential": "4132f8c881031504cb8d0ad0e5ff37a8","pvBottomPrice": "a9321bf5b7bec7702c218852c4a2c545","pvFlatPrice": "a9321bf5b7bec7702c218852c4a2c545","pvPeakPrice": "a9321bf5b7bec7702c218852c4a2c545","pvTopPrice": "a9321bf5b7bec7702c218852c4a2c545","remark": null,"signTime": null,"startTime": "b5221eabb6ce34d33d3b1bedc2611c59","status": "8823fb5b75bf0b2b4b19a6d85e3bfce4","timeStamp": "c10b4c45d1235af1b48b62c8d1fdc0c1","ydHouseNumber": "01e6db51b86d93ab6c3e82aa7615517d" }

總結(jié)

以上是生活随笔為你收集整理的java高级反射(一),通过反射批量修改属性值set,get方法 Field,对属性值进行统一操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美a在线观看 | 双性人bbww欧美双性 | 国产视频福利在线观看 | 69超碰| 动漫美女被吸奶 | av福利在线免费观看 | 成人久久一区二区 | 国产一区二区三区四区五区 | 手机看片福利一区 | 成人影视在线播放 | 91精品国产高清91久久久久久 | 91九色丨porny丨肉丝 | 青青青在线观看视频 | 北条麻妃一区二区三区免费 | 性高潮久久久久久久 | 污污的视频在线观看 | 素人一区 | 女同久久另类69精品国产 | 性生活免费网站 | avtt香蕉久久 | 三级国产视频 | 国产露脸国语对白在线 | 日本不卡高清视频 | 国产91看片 | 综合久久五月 | 韩日a级片 | 黄色片a级片 | 精品一区二区三区在线免费观看 | 黄色在线一区 | 久久青青草原 | 日韩不卡免费 | 鸥美一级片| 欧洲综合视频 | xzjzjzjzjzj欧美大片 | 91精品国产乱码久久久 | 亚洲精品中文在线 | 欧美大片一区二区 | 在线观看网站污 | 中文字幕视频观看 | 精品一区二区视频 | 胖女人毛片 | 午夜日韩欧美 | 午夜精品久久久久久久无码 | av成人资源 | 僵尸叔叔在线观看国语高清免费观看 | 17c国产精品一区二区 | 久一在线 | 免费观看一区二区三区视频 | 亚洲九九夜夜 | 中文字幕日韩精品无码内射 | 欧美一区二区三区成人 | 亚洲 欧美 国产 另类 | 日本高清免费不卡视频 | 亚洲爽爆av | 一级黄色片免费在线观看 | 日韩高清在线观看一区 | 黄色在线一区 | 五月天国产在线 | 超碰超碰超碰超碰 | 欧美国产另类 | 91成人看| 熟女毛片 | 欧美xxxx视频 | 国产精品天天看 | 久久精品视频一区二区三区 | 亚洲熟伦熟女新五十路熟妇 | 爱情岛论坛永久入址测速 | 伊人网站在线观看 | 中日韩在线播放 | 国产看黄网站 | 西西午夜视频 | 香港台湾日本三级大全 | 1024手机在线看片 | 少妇高潮21p | 在线精品免费视频 | 久久精品国产免费看久久精品 | 午夜欧美精品 | 久久久久亚洲视频 | 婷婷五月在线视频 | 一区二区三区在线播放视频 | 大桥未久恸哭の女教师 | 国产精品自拍99 | 精品伦一区二区三区 | 国产精品无码AV | 免费大片在线观看www | 草草在线影院 | 久久精品免费播放 | 800av免费在线观看 | 亚洲特黄一级片 | 久久久久久亚洲av毛片大全 | 中文在线免费视频 | 久色伊人 | 色666 | 福利在线视频导航 | 97精品视频在线观看 | 黄色视屏在线看 | www.色视频| 精品综合久久久久 | 久久国产精品偷 |