反射使您的程式**能夠接入裝載到 jvm 中的類的內部資訊,允許你編寫與執行時,而不是源**中選定的類協作的**。這使反射成為構建靈活的應用的主要工具。
首先觀察下面的 xml 檔案:
<?xml version = '1.0' encoding = 'gb2312'?>
300200500009
20050112測試
200543030000010
20010112標段2
監督備案
該 xml 檔案描述了乙個標段當前流程資訊,接下來把它翻譯成 vo :
public class bidprocess implements serializable
/*** @param functionname 要設定的 functionname。
*/public void setfunctionname(string functionname)
/*** @return 返回 itemname。
*/public string getitemname()
/*** @param itemname 要設定的 itemname。
*/public void setitemname(string itemname)
/*** @return 返回 itemno。
*/public string getitemno()
/*** @param itemno 要設定的 itemno。
*/public void setitemno(string itemno)
/*** @return 返回 subitemname。
*/public string getsubitemname()
/*** @param subitemname 要設定的 subitemname。
*/public void setsubitemname(string subitemname)
/*** @return 返回 subitemno。
*/public string getsubitemno()
/*** @param subitemno 要設定的 subitemno。
*/public void setsubitemno(string subitemno)
}從 xml 構造 vo ,放入 list 中,**如下:
public class vofactory {
// 構造出的物件集合
private arraylist list=new arraylist();
/** 利用反射獲取結果集 */
public list parse(serializable source, string xml){
try{
//構造 xml 輸入流
bytearrayinputstream ba=new bytearrayinputstream(xml.getbytes());
//dom4j 初始化
saxreader reader = new saxreader();
document document = reader.read(ba);
element root = document.getrootelement();
//獲得類物件
class c = source.getclass();
//獲得建構函式
constructor cons=c.getdeclaredconstructors();
constructor con=cons[0];
//獲得類中的字段
field fields = c.getdeclaredfields();
//設定訪問private欄位的許可權
accessibleobject.setaccessible(fields,true);
//以特定名稱獲得 xml 元素列表
list lis = root.elements("arsubitem");
//"arsubitem"元素下的子元素
for(int i=0;i
通過對以上**原形進行修改,可實現分頁、結果集巢狀等需求。在寫作本文時,我偶然發現了 jakarta ***mons beanutils 也提供了類似的功能。那麼本文就作為乙個了解反射的範例罷了。
利用反射機制修改構造器的許可權
通過反射,可以獲取並修改構造器的許可權 定義乙個懶漢模式 懶漢模式 class lazyman public static lazyman getinstance return instance 開始修改 lazyman instance lazyman.getinstance lazyman in...
C 筆記 利用XML檔案構建反射表機制
在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...
C 配合利用XML檔案構建反射表機制
在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...