最近公司正在進行業(yè)務組件化進程,其中的路由實現(xiàn)用到了Java的反射機制,既然用到了就想著好好學習總結一下,其實無論是之前的EventBus 2.x版本還是Retrofit、早期的View注解框架都或多或少的用到Java的反射機制。以下是自己使用反射的兩個地方,感興趣的同學可以看下:Android okHttp網(wǎng)絡請求之Json解析,Android業(yè)務組件化之子模塊SubModule的拆分以及它們之間的路由Router實現(xiàn)。
什么是Java反射機制?
JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法;這種動態(tài)獲取的以及動態(tài)調(diào)用對象的方法的功能稱為Java的反射機制。
反射機制提供了哪些功能?
-
在運行時判定任意一個對象所屬的類
-
在運行時構造任意一個類的對象;
-
在運行時判定任意一個類所具有的成員變量和方法;
-
在運行時調(diào)用任意一個對象的方法;
-
生成動態(tài)代理;
Java反射機制類:
java.lang.Class; //類 java.lang.reflect.Constructor;//構造方法 java.lang.reflect.Field; //類的成員變量 java.lang.reflect.Method;//類的方法 java.lang.reflect.Modifier;//訪問權限