key,value集合轉實體類

2021-09-25 21:37:48 字數 676 閱讀 7065

在專案中碰到類似的情景,比較有意思,記錄一下:

我手上有乙個集合,集合中有乙個實體類的欄位名稱和他的值,但是都是string型別的。需要將這個集合轉換為這個實體類。

過程問題如下:

1.我手上只有集合如何判定他是哪個實體類?

2.集合中key和value都是string型別,如何轉換為對應的資料型別

3.如何把資料轉換為那個實體類

我這裡只說原理:

首先,這種情況考慮到底就是反射,第乙個問題,我做了乙份配置檔案,在前置處理中,將根據對應的資料,從載入的配置檔案中獲取pojoname,然後就是我們常用的object pojoclass = classutils.getclass(pojoname).newinstance(),這種反射獲取實體類;

然後過呢,就根據獲取的pojo類,建立乙個屬性名和屬性所屬型別的map;

再然後呢,拼接方法,set+屬性名稱就是我們的set方法了,value呢,就需要map中的屬性名和屬性型別同我們的集合做乙個處理的工具類,返回對應的的值,使用object 

最後,methodutils.invokemethod(pojoclass,methodname,methodvalue),這個pojoclass就是我們要獲取的物件了。

注意,如果集合中有無效資料,可以考慮加乙個try,catch,捕獲異常後打個log,意思一下,說明欄位不處理。

xsd轉實體類

話說vs自帶的工具,可以將xsd或者xml格式的檔案轉成實體類,大概格式如下 使用vs2005工具xsd.exe sdk v2.0 bin xsd.exe 自動生成實體類 xsd c namespace mycompany language cs temp1.xsd 也可以生成dataset型別的類...

XML轉實體類工具

這裡使用到了jox依賴 com.wutka jox1.16 工具類 project gsj qcdzh company jit northeast r d description todo author dongwei date 2019年1月17日 上午9 47 33 version v1.0 p...

MySQL實體類轉SQL指令碼

attributeusage attributetargets.property,allowmultiple false,inherited false 用於給擴充套件類的屬性增加特性標識 如果實體類屬性有此標識,則不參與指令碼運算 public class i tendfieldattribute...