反射方式 Map轉換obj物件

2021-10-10 05:55:00 字數 1056 閱讀 6100

最近接到的需求是這樣的,要求我根據乙個關聯id獲取不同資料表的資料,並返回list集合。

我接到這個需求最初想法就是通過mabatis首先獲取list>返回值集合; 然後在根據表名稱就可以得知實體類物件了,再通過反射的方式進行將map轉換為obj。可能有人問我為什麼這麼轉,因為已經獲取到了map集合了。在這裡我說一下,雖然我獲取到了集合但是呼叫這個介面的開發人員就難受了,因為首先map中的key都是資料庫表字段,那相應的開發人員就要通過反射的方式進行獲取表字段了,為了方便他人我就在我這裡全部都做了,呼叫方只需要根據實體類強轉就可以了。

public

static list

maptoobject

(list

> map,class<

?> clz)

field.

setaccessible

(true);

column presentcolumn;

string columnname;

//判斷是否被column註解修飾,獲取name屬性值

if(field.

isannotationpresent

(column.

class))

} list.

add(obj);}

catch

(exception e)})

;return list;

}

說明一下,這個是我再工具類種定義的轉換方法。其實思路很簡單,就是首先獲取反射物件,獲取字段,此處說明一下,getfields()是獲取所有public修飾的字段,但是正常開發種,欄位都是private pri修飾的,所以getdeclaredfields通過該方法獲取字段。然後判斷是否被static 或者final修飾,然後獲取所有被@column註解修飾的字段,獲取column的name屬性值,最後進行賦值操作,最後返回list物件。

,]

乙個小白的開發經驗,本文僅僅是自己用作以後經驗和技術提公升的筆記,請勿噴,如果有更好的想法,希望可以分享一下,謝謝。

利用反射將實體類物件轉成Map

在我們程式設計的過程中往往會用到反射,利用反射有時候可以更容易的做到一些事情,下面就說乙個反射的實際應用場景吧,就是將object轉化成乙個map,object裡的屬性名對應map的key,object裡的屬性值對應map的value public static mapobjecttomap obj...

反射機制(1) 獲取 class物件 的方式

有關反射機制的全部內容,請 本人的同專欄博文 詳解 反射機制 在獲取上述的屬性 成員 方法等之前,我們必須要先獲取相應的class物件。所以,本人就在這個專題的開篇來介紹一下三種最常用的獲取 class物件 方式吧 1 形如如下方式 class klass 類.class 2 形如如下方式 類型別 ...

Map集合遍歷Entry 鍵值對物件方式

map.entry 在map介面中有乙個內部介面entry 作用 當map集合一建立,那麼就在map集合中建立乙個entry物件,用來記錄鍵與值 鍵值對物件,鍵與值得對映關係 結婚證 map集合中遍歷的第二種方法 使用entry物件遍歷 map集合中的方法 set entryset 返回此對映中包含...