• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>知識大全>知識百科>百科知識>

    java什么是反射

    時間: 歐東艷656 分享

      反射指程序可以訪問、檢測和修改它本身狀態或行為的一種能力程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然后,可以調用類型的方法或訪問其字段和屬性。

      Java中的反射,我們常見是取得構造方法,成員變量,普通方法,還有對數組反射的操作。

      1、反射的精辟定義:反射就是把Java類中的各種成分映射成相應的Java類。

      2、Class實例表示正在運行的Java應用程序中的類和接口。所有的

      3、反射除了方法體得不到,別的都可以得到。包括可以得到類里私有的成員變量。本人覺得這破壞了Java的封裝性,不知道為什么要這么設計。

      一、構造方法的反射

      (1)得到需要反射的類Class。知道類名可以使用forName(String className) 方法。也可以通過對象的.getClass方法獲得。或者明確去獲得哪個類型。比如我們有一個Person類,我們想得到這個類的實例可以寫成 Person.class。

      (2)構造方法用Constructor類表示。可以通過剛才得到的Class,使用getConstructor方法獲得,想獲得什么形參的構造方法,就傳入什么形參類型的Class,比如想取得String的String(StringBuffer buffer) 構造方法可以這樣:String.class.getConstructor(StringBuffer.class)。

      (3)使用取得的構造方法創建對象,我們需要使用newInstance方法,形參為可變參數,按上面取得的String的構造方法,我們就可以這樣創建對象,String.class.getConstructor(StringBuffer.class).newInstance(new StringBuffer())

      二、成員變量的反射

      (1)我們同樣需要取得反射的類Class。

      (2)Java中使用Field類表示字段,我們想獲得成員變量可以使用Class的getField(String name)方法,參數為成員變量的名字。也有getFields()方法取得該類的所有成員變量,返回值為Field的數組。取得Field的值,使用 get方法,設置值使用set方法。

      (3)暴力訪問私有成員使用setAccessible方法,getType() 取得Field類型,getName()取得Field的字段名稱。

      三、普通方法的反射

      (1)取得反射類Class。

      (2)方法使用Method類定義,獲得方法使用getMethod(String name, Class… parameterTypes) ,用法很像獲得構造方法,只是多出一個方法名的參數。

      (3)getReturnType()獲得方法的返回值類型,getParameterTypes()獲得所有形參類型。

      (4)用invoke調用方法第一個參數為需要調用的對象,第二個參數為用于調用的參數。

    245750 主站蜘蛛池模板: 国产a级特黄的片子视频| 拍摄直播play文h| 国产精品无码av在线播放| 亚洲资源在线视频| www.中文字幕| 精品3d动漫视频一区在线观看| 成人毛片无码一区二区三区| 另类视频第一页| 一级做a爰片久久毛片人呢| 精品国产福利片在线观看| 张瑶赵敏大学丝袜1-10| 免费黄网站大全| eeuss免费影院| 污片在线观看网站| 国产精品无码专区| 亚洲aⅴ男人的天堂在线观看| 日本国产在线视频| 日韩欧美伊人久久大香线蕉| 国产另类的人妖ts视频| 久久99精品久久久久久久久久| 色黄网站aaaaaa级毛片| 成人午夜视频免费| 免费无码国产V片在线观看| 99热免费在线观看| 欧美日韩国产精品自在自线| 国产精品9999久久久久仙踪林| 五月开心激情网| 草莓视频色版在线观看| 性高湖久久久久久久久aaaaa| 免费人成在线观看69式小视频 | 欧美高清xxx| 国产精品久久毛片| 久久精品无码aV| 老公和他朋友一块上我可以吗 | 毛片网站免费在线观看| 国产精品久久久久鬼色| 久久精品国产96精品亚洲| 老师上课跳d突然被开到最大视频| 好色先生tv网站| 亚洲图片中文字幕| 黄色一级片免费看|