- Field : 提供有關(guān)類或接口的單個字段的信息和動態(tài)訪問。
getName() :返回此Field對象表示的字段的名稱.
getType(): 返回一個Class對象,該對象標(biāo)識此Field對象表示的字段的聲明類型 。- getDeclaredField(String name) : 返回一個Field對象。
- getDeclaredFields() :返回一個Field數(shù)組
- 當(dāng)然用的的不止這些,具體看業(yè)務(wù)和Class 文檔
public class Conversion {
????//將model中與entity中類型和名稱相同的屬性值賦值給對應(yīng)的entity的屬性,并返回entity
public static T2 TypeConversion(T1 model, T2 entity) {
List
// 這邊比較數(shù)據(jù)的值
public List> getCompareData(HecYbMedCodeSyncEntity entityHis, HecYbMedCodeSyncEntity entityNow) {
List> lists = new ArrayList<>();
List> modelList = Conversion.getFiledInfo(entityHis);
List> entityList = Conversion.getFiledInfo(entityNow);
modelList.forEach(mapHis -> {
entityList.forEach(mapNow -> {
Map map = new HashMap<>();
//這邊需要把獲取得到的字段名 跟 醫(yī)保中心的字段名做個匹配,把我們這邊的字段名轉(zhuǎn)成他們那邊的字段名
if ( mapHis.get("name").toString().equals(mapNow.get("name").toString())) {//判斷名字相同
if (!(mapHis.get("value").toString().equals(mapNow.get("value").toString())) ) {//判斷值不相同 且 反射實體不為空
map.put("bgzdbm", fieldMappedEnum.getSourceFieldName()); //變更字段編碼
map.put("bgzdmc", fieldMappedEnum.getDesc()); //變更字段名稱
map.put("bgqz00", mapHis.get("value").toString()); //變更前值
map.put("bghz00", mapNow.get("value").toString()); //變更后值
map.put("bgsj00", DateUtil.limitDay(entityNow.getSyncTime())); //變更時間
lists.add(map);
}
}
});
});
我的設(shè)計思路是,設(shè)計一個枚舉,把我數(shù)據(jù)庫的字段A,和webServer接口上的字段對應(yīng)上B,這樣給B賦值的時候就可以通過枚舉獲取得到A,并且通過A就可以獲取到A的值,這樣就繞過了人工的給B賦值的繁瑣操作。
成都一家集口碑和實力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團隊和靠譜的建站技術(shù),十年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗 ,為成都上千余家客戶提供網(wǎng)頁設(shè)計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,同時也為不同行業(yè)的客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。
調(diào)用如下:
FieldMappedEnum fieldMappedEnum = FieldMappedEnum.findSourceFieldByTarget(mapHis.get("name").toString());
map.put("bgzdbm", fieldMappedEnum.getSourceFieldName()); //變更字段編碼
map.put("bgzdmc", fieldMappedEnum.getDesc()); //變更字段名稱
....