編輯:Android開發教程
JAVA反射機制定義:
JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有 屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法;這種動態獲取 的信息以及動態調用對象的方法的功能稱為java語言的反射機制。
Java反射機制主要提供了以下功能: 在運行時判斷任意一個對象所屬的類; 在運行時構造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和 方法;在運行時調用任意一個對象的方法;生成動態代理。
有時候我們說某個語言具有很強的動態性,有時候我們會區分動態和靜態的 不同技術與作法。我們朗朗上口動態綁定(dynamic binding)、動態鏈接 (dynamic linking)、動態加載(dynamic loading)等。然而“動態”一詞其 實沒有絕對而普遍適用的嚴格定義,有時候甚至像對象導向當初被導入編程領域 一樣,一人一把號,各吹各的調。
一般而言,開發者社群說到動態語言,大致認同的一個定義是:“程序運行 時,允許改變程序結構或變量類型,這種語言稱為動態語言”。從這個觀點看, Perl,Python,Ruby是動態語言,C++,Java,C#不是動態語言。
盡管在這樣的定義與分類下Java不是動態語言,它卻有著一個非常突出的動 態相關機制:Reflection。這個字的意思是“反射、映象、倒影”,用在Java身 上指的是我們可以於運行時加載、探知、使用編譯期間完全未知的classes。換 句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造( 但不包括methods定義),並生成其對象實體、或對其fields設值、或喚起其 methods1。這種“看透 class”的能力(the ability of the program to examine itself)被稱為introspection(內省、內觀、反省)。Reflection和 introspection是常被並提的兩個術語。
以上摘錄自百度百科,在Android 中有很多類是被封閉的,比如 ServiceManager 藍牙模塊更是有N多個類被Android 隱藏不開放,要調用這些類 必須使用java 的反射技術將類轉為對象進行操作.Android 應用也是基於JAVA 語言為基礎,當然也具備反射這一技術,下面我寫了一個DEMO 是如何通過反射 技術調用類名方法並完成一個加減乘除的記算器。
首先我們定義一個類,此為只是簡單的定義幾個方法,即加減乘除四個方法 ,代碼如下:
class operationClass {
public float add(int parm1, int parm2) {
return parm1 + parm2;
}
public float cut(int parm1, int parm2) {
return parm1 - parm2;
}
public float ride(int parm1, int parm2) {
return parm1 * parm2;
}
public float Except(int parm1, int parm2) {
return parm1 / parm2;
}
}
在上一篇文章中,我和大家一起實現了類似於Android系統聯系人的分組導航和擠壓動畫功能,不過既然 文章名叫做《Android系統聯系人全特效實現》,那麼沒有快速滾動功能
iPhone第一個真正意義上的競爭對手G1如期而來,正如蘋果的產品一樣,這是一個強大的掌上電腦,並且擁有一個開源的操作系統,和一個智能的指觸式用戶界面。和iPhone一樣
Android進程模型在安裝Android應用程序的時候,Android會為每個程序分配一個Linux用戶ID,並設置相應的權限,這樣其它應用程序就不能訪問此應用程序所擁
在開發過程中,有時候,預先創建好數據庫比在程序運行時創建數據庫更加地高效。舉個例子,你想編寫 一個程序,這個程序把你去過的地方的坐標都顯示出來。這種情況下,預先創建數據庫