午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

java反射機制原理詳解

 昵稱21272883 2014-12-30

Java運行時環(huán)境中,對于任意一個類,可以知道這個類有哪些屬性和方法。對于任意一個對象,可以調用它的任意一個方法。

這種動態(tài)獲取類的信息以及動態(tài)調用對象的方法的功能來自于Java 語言的反射(Reflection)機制。

 

Java 反射機制主要提供了以下功能

在運行時判斷任意一個對象所屬的類。

在運行時構造任意一個類的對象。

在運行時判斷任意一個類所具有的成員變量和方法。

在運行時調用任意一個對象的方法

 

關于JAVA更多反射機制的資料以及跟高手學習機會,可以加到422,然后就是912,加上最后的489,感覺還不錯?,F在才開始學反射機制沒多久,差不多已經把這一塊搞清楚了

 

 

反射的常用類和函數:Java反射機制的實現要借助于4個類:Class,Constructor,Field,Method;其中class代表的是類對象,Constructor-類的構造器對象,Field-類的屬性對象,Method-類的方法對象,通過這四個對象我們可以粗略的看到一個類的各個組成部分。其中最核心的就是Class類,它是實現反射的基礎,它包含的方法我們在第一部分已經進行了基本的闡述。應用反射時我們最關心的一般是一個類的構造器、屬性和方法,下面我們主要介紹Class類中針對這三個元素的方法

 

1、得到構造器的方法 

 

Constructor getConstructor(Class[] params) -- 獲得使用特殊的參數類型的公共構造函數, 

 

Constructor[] getConstructors() -- 獲得類的所有公共構造函數 

 

Constructor getDeclaredConstructor(Class[] params) -- 獲得使用特定參數類型的構造函數(與接入級別無關

 

Constructor[] getDeclaredConstructors() -- 獲得類的所有構造函數(與接入級別無關

 

2、獲得字段信息的方法 

 

Field getField(String name) -- 獲得命名的公共字段 

 

Field[] getFields() -- 獲得類的所有公共字段 

 

Field getDeclaredField(String name) -- 獲得類聲明的命名的字段 

 

Field[] getDeclaredFields() -- 獲得類聲明的所有字段 

3、獲得方法信息的方法 

 

Method getMethod(String name, Class[] params) -- 使用特定的參數類型,獲得命名的公共方法 

 

Method[] getMethods() -- 獲得類的所有公共方法 

 

Method getDeclaredMethod(String name, Class[] params) -- 使用特寫的參數類型,獲得類聲明的命名的方法 

 

Method[] getDeclaredMethods() -- 獲得類聲明的所有方法 

 

在程序開發(fā)中使用反射并結合屬性文件,可以達到程序代碼與配置文件相分離的目的

如果我們想要得到對象的信息,一般需要“引入需要的‘包.類’的名稱——通過new實例化——取得實例化對象”這樣的過程。使用反射就可以變成“實例化對象——getClass()方法——得到完整的‘包.類’名稱”這樣的過程。

正常方法是通過一個類創(chuàng)建對象,反射方法就是通過一個對象找到一個類的信息。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多