在設計程式時,無論是介面或是後台**,我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的**中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表機制的原理做個示範。
語音卡的底層開發函式中,放音和錄音函式的引數都是很多而且不易理解和記憶的。以語音格式為例,假如a率的標記值是6,u率的標記值是7,……,一般所能相容的語音格式為10多個。如果我們選用整形變數來做標記語音格式的引數,那麼我們大概就有兩種選擇:1.要麼我們把這種對應關係生記下來,2.要麼我們在呼叫函式時去查一下對照表,而這兩種方式,都需要做不必要的投入。
這時反射表的優勢就表現出來了,下面看看例子:
//先做乙個語音格式的列舉,方便使用者呼叫:
enum 語音格式
//這是乙個語音格式類,用於填充語音格式對照表
class phoneticmatrix
}//編寫乙個方法,用來演示語音格式對照表的使用,具體使用方法類似但要視情況而定
//顯示所選取的語音格式的配置編號
public int showformatid(語音格式 使用者選項)
//最後貼出測試用的main函式
class program
}//最後給出測試用的xml檔案:
<?xml version="1.0" encoding="utf-8" ?>
《語音格式》
《格式》
《名稱》a率//輸出結果:
使用者選定項:a率;該選項的配置值為:6
這種處理方法,可以在許多方面得到應用。例如在語音卡的事件處理過程中,諸如外撥事件、放音事件及錄音事件等操作,在這種過程性的事件響應中,都需要利用反射機制將通道狀態來輸出。
C 筆記 利用XML檔案構建反射表機制
在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...
C 如何利用反射構建Sql引數
首先呢,說到這個問題我們要知道泛型的概念,泛型呢你可以把它當成乙個引數,就是呼叫的時候傳入這個型別,接著就是獲取這個型別裡的所有屬性及值。我們先來建立乙個方法名getmysqlparame的方法,當然我這裡是以mysql的為例,有乙個引數,這個引數是我們不知道型別和屬性及值的實體,我們可以用泛型,也...
利用反射從 XML 構造 VO
反射使您的程式 能夠接入裝載到 jvm 中的類的內部資訊,允許你編寫與執行時,而不是源 中選定的類協作的 這使反射成為構建靈活的應用的主要工具。首先觀察下面的 xml 檔案 300200500009 20050112測試 200543030000010 20010112標段2 監督備案 該 xml ...