android的反射和註解
阿新 • • 發佈:2019-02-16
反射的文章http://www.cnblogs.com/lzq198754/p/5780331.html
反射是java中一種強大的工具,能夠使我們很方便的建立靈活的程式碼,這些程式碼可以再執行時裝配
1反射機制是什麼
反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法和屬性;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制。
2反射機制能做什麼
反射機制主要提供了以下功能:
-
在執行時判斷任意一個物件所屬的類;
-
在執行時構造任意一個類的物件;
-
在執行時判斷任意一個類所具有的成員變數和方法;
-
在執行時呼叫任意一個物件的方法;
-
生成動態代理。
Java的註解(Annotation)相當於一種標記,在程式中加入註解就等於為程式打上某種標記,標記可以加在包,類,屬性,方法,本地變數上。然後你可以寫一個註解處理器去解析處理這些註解(人稱編譯時註解),也可以在程式執行時利用反射得到註解做出相應的處理(人稱執行時註解)。
二,反射機制的作用:
1,反編譯:.class-->.java
2,通過反射機制訪問java物件的屬性,方法,構造方法等;
1,使用反射的註解框架簡單但是帶來的就是效能問題(因為在執行時處理),破壞了程式的封裝性,比如XUtils框架
2,不使用反射,在編譯時期的註解,會增加編譯時間困難留給程式設計師,但是給使用者的效能就比較好,比如butterknife註解開源框架