關於java反射的一點應用

2021-08-31 20:27:13 字數 875 閱讀 7549

這裡記錄我在專案中寫的乙個小應用,用在了資料庫的幫助類中,用於將查詢的結果組裝成list返回:不說了,看**:

public listgetlist(string sql,object params,object obj)else

listlist = new arraylist();

try );

setmethod.invoke(inst, new object);

i++;

}list.add(inst);

}} catch (securityexception e) catch (sqlexception e) catch (illegalargumentexception e) catch (illegalacces***ception e) catch (invocationtargetexception e) catch (nosuchmethodexception e) catch (instantiationexception e)

return list;

}

大概解釋下:獲得resultset後,將其封裝成list集合,hibernate中可以直接獲得,當然,我並沒有看hibernate中是如何實現的,我這裡只是我的乙個實現,需要有一些限制條件。

1.獲得bean物件就是這裡的inst;

2.獲得bean物件的所有field域,就是定義的那些字段;

3.構造每個欄位的set方法名稱;

4.將從resultset中拿出來的結果set到bean物件中

5.將bean物件放到list集合中

6.return list集合

限制條件:要保證bean物件的順序和寫的查詢語句查出的每個字段順序一致,不然,就張冠李戴了!

關於反射的一點理解(一

反射 reflection 是.net 中的重要機制,通過放射,可以在執行時獲得 net 中每乙個型別 包括類 結構 委託 介面和列舉等 的成員,包括方法 屬性 事件,以及建構函式等。還可以獲得每個成員的名稱 限定符和引數等。有了反射,即可對每乙個型別瞭如指掌。如果獲得了建構函式的資訊,即可直接建立...

關於wget應用的一點注意。

前幾天我發表了關於持續構建的一篇文章,裡面講到wget的應用。今天當我在suse9 32b下使用的時候,發現不對勁,提示說這個命令的某些選項不存在,如 ftp user,ftp password,經過檢視,發現suse9 32b下的wget版本是1.9.1,這些命令選項確實不存在,然後看了看我經常使...

關於Java中static的一點思考

static所修飾的方法和變數是屬於類本身,不屬於物件,無論建立多少個物件例項都是共用乙個方法和變數.靜態的方法不可以呼叫非靜態的方法,非靜態的方法可以呼叫靜態的方法.書上一般都這麼寫,但是作為入門的同學來說,記憶起來也很容易混淆起來。但仔細想想,也很容易理解。靜態方法之所以不能呼叫非靜態方法,是因...