JAVA-反射技術

一傍念、技術總結:
1苏潜、獲得類:
(1)Class c=Class.forName("classname");
(2)Class c=classname.Class;
(3)classname cn=new classname();
Class c=cn.getClass();
2、獲得構造函數(shù):
(1)獲得所有構造函數(shù):
Constructor[] con=c.getConstructors();//只包含公共的
Constructor[] con=c.getDeclaredConstructors();//包含所有荞彼,包括私有
(2)獲得具體構造函數(shù):
Constructor con=c.getDeclaredConstructor(String.class,int.class);//包含私有
Constructor con=c.getConstructor(String.class,int.class);//只包含公共
(3)實例化構造函數(shù)
Object o=con.newInstance("java",5);//實例化有參構造
Object o=c.newInstance();//實例化無參構造
3骡送、獲得屬性:
(1)獲得所有屬性
Field[] fs=c.getFields();//只包含公共(本類及其父類的)
Field[] fs=v.getDeclaredFields();包含所有
(2)獲得指定屬性
Field f=c.getField("fieldname");//獲得公共的屬性名為fieldname的屬性昂羡,包括其父類
Field f=c.getDeclaredField("fieldname");//獲得當前類屬性名為fieldname的屬性
f.setAccessible(true);//打破封裝,獲得private的屬性
(3)設置屬性
Object o=c.newInstance();
f.set(o,12);//設置c類中屬性f的值為12摔踱;
4虐先、獲得方法
(1)獲得所有方法列表
Method[] ms=c.getMethods();//獲得當前類及其父類所有public方法
Method[] m=c.getDeclaredMethods();//獲得當前類所有方法
(2)獲得指定方法
Method m=c.getMethod("method",String.class);//獲得public類名為method,參數(shù)為String的方法
Method m=c.getDeclaredMethod("method",String.class);//獲得類名為method派敷,參數(shù)為string的方法蛹批,修飾符不限
(3)調用方法
Object o=c.newInstance();
m.invoke(o,"java");//調用類c中的方法m撰洗,傳參String為java。
5腐芍、獲取父類和父接口
Class c=Class.forName("classname");
Class superclass=c.getSuperClass();//獲取父類
Class[] superInterface=c.getInterfaces();//獲取父接口
6差导、獲取修飾符Mofifier.toString(c.getModifier());

二、涉及英文單詞
constructor 構造函數(shù)
method 方法
invoke 調用
parameter 參數(shù)
declared 公然的 公開宣布的
field 領域(屬性)
accessible 易接近的猪勇,可進入的
modifier 修飾語

三设褐、個人見解
首先,在我看來泣刹,反射技術在java中代替了直接引用類的功能络断,可以通過反射技術做到引用類,獲取屬性项玛、構造方法、函數(shù)的所有功能弱判,同時可以更靈活的擴展襟沮,包括動態(tài)的獲取類,而不是后期直接修改class文件昌腰,而是修改配置文件开伏,使得面向對象更加強大、可用遭商。但是同時要面臨的問題是反射技術的使用使得代碼變得模糊固灵,不容易被理解,并且使用反射技術獲取類要比直接引用類要慢十多倍劫流,因此不到萬不得已不能直接使用類巫玻。
在實際編碼中,反射技術在ssh中使用較多祠汇,因此在平時訓練的時候可以多使用反射技術仍秤,在熟悉反射技術代碼、原理的同時為未來框架做準備可很。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末诗力,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子我抠,更是在濱河造成了極大的恐慌苇本,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菜拓,死亡現(xiàn)場離奇詭異瓣窄,居然都是意外死亡,警方通過查閱死者的電腦和手機尘惧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門康栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事啥么〉俏瑁” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵悬荣,是天一觀的道長菠秒。 經常有香客問我,道長氯迂,這世上最難降的妖魔是什么践叠? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮嚼蚀,結果婚禮上禁灼,老公的妹妹穿的比我還像新娘。我一直安慰自己轿曙,他們只是感情好弄捕,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著导帝,像睡著了一般守谓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上您单,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天斋荞,我揣著相機與錄音,去河邊找鬼虐秦。 笑死平酿,一個胖子當著我的面吹牛,可吹牛的內容都是我干的羡疗。 我是一名探鬼主播染服,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叨恨!你這毒婦竟也來了柳刮?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤痒钝,失蹤者是張志新(化名)和其女友劉穎秉颗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體送矩,經...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蚕甥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了栋荸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菇怀。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡凭舶,死狀恐怖,靈堂內的尸體忽然破棺而出爱沟,到底是詐尸還是另有隱情帅霜,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布呼伸,位于F島的核電站身冀,受9級特大地震影響,放射性物質發(fā)生泄漏括享。R本人自食惡果不足惜搂根,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铃辖。 院中可真熱鬧剩愧,春花似錦、人聲如沸娇斩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽成洗。三九已至,卻和暖如春藏否,著一層夾襖步出監(jiān)牢的瞬間瓶殃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工副签, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遥椿,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓淆储,卻偏偏與公主長得像冠场,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子本砰,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容

  • 一碴裙、概述 Java反射機制定義 Java反射機制是在運行狀態(tài)中,對于任意一個類点额,都能夠知道這個類中的所有屬性和方法...
    CoderZS閱讀 1,634評論 0 26
  • 寫在前面 想必開發(fā)過接口的童鞋們舔株,應該或多或少寫過一些接口說明文檔。那么还棱,有沒有可能把現(xiàn)有的接口做成一個界面在頁面...
    wblearn閱讀 2,801評論 6 32
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理载慈,服務發(fā)現(xiàn),斷路器珍手,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 前言办铡,本來只是想研究一下注解的辞做,不過發(fā)現(xiàn),要懂注解先得懂反射寡具,別問我為什么秤茅,你可以自己試試 JAVA反射 主要是指...
    justCode_閱讀 1,222評論 2 9
  • 一:java概述:1,JDK:Java Development Kit晒杈,java的開發(fā)和運行環(huán)境嫂伞,java的開發(fā)工...
    ZaneInTheSun閱讀 2,650評論 0 11