Java反射

一. Class類

      類就是對象,類是java.lang.Class類的實例對象
      萬事萬物皆是對象,
      類也是對象赫编,是Class類的實例對象
      這個對象我們稱為該類的類類型
      There is a class named Class
      //第一種表達方式   任何一個類都有一個隱含的靜態(tài)成員變量Class
      Class c1 = Foo.class

      //第二種表達方式  已經(jīng)知道該類的對象通過getClass方法
      Class c2 = foo1.getClass();
      
      /*官網(wǎng) c1,c2表示了Foo類的類類型(class type)*/

      //不管c1 or c2都代表了Foo類的類類型玷坠,一個類只可能是Class類的一個實例對象
      System.out.println(c1 == c2);

      //第三種表達方式
      Class c3=null;
      c3=Class.forName("com.imooc.reflect.Foo");
      //我們完全可以通過類的類類型創(chuàng)建類的對象實例--->通過c1 or c2 or c3創(chuàng)建Foo的實例對象
      Foo foo=(Foo)c1.newInstance();//需要有無參數(shù)的構(gòu)造方法

二. Java動態(tài)加載類

  1)  靜態(tài)加載類,是編譯時刻加載者疤;動態(tài)加載類,是運行時刻加載
  2)  new創(chuàng)建對象,是靜態(tài)加載類吧慢,在編譯時刻就需要加載所有的"可能使用到的類"。有一個類可能有問題(如不存在)赏表,都不能通過編譯检诗,會報錯。    
  3)  Class.forName("類的全稱") 通過動態(tài)加載類瓢剿,可以用到一個類時逢慌,才進行加載。
     【功能性的類盡量使用動態(tài)加載间狂,并對新添加的類實現(xiàn)功能性接口(標準)攻泼,這樣就不用重新編譯】
      
        Class c = Class.forName(args[0])  動態(tài)加載類
        Office oa = (Office)c.newInstance();
        使用子類實現(xiàn)這個接口,編譯時javac office word即可

三. Java獲取方法信息

    基本數(shù)據(jù)類型鉴象,void關(guān)鍵字都存在類類型
    class.getMethods()方法獲取是該類的所有public方法忙菠,包括從父類繼承的方法;
    class.getDeclareMethods()方法獲取該類自行聲明的所有方法纺弊,不論訪問權(quán)限牛欢;
    method.getName()獲取方法名
    method.getReturnType()獲取方法的返回值
    method.getParameterTypes(),獲取方法的參數(shù)類型的類類型數(shù)組class[]
 
    Class c1 = int.class; int的類類型
    Class c2 = String.class; String類的類類型 String類字節(jié)碼
    Class c3 = double.class; double這個數(shù)據(jù)類類型的字節(jié)碼表示方式
    Class c4 = Double.class; Double這個類的類類型字節(jié)碼表示方式
    Class c5 = void.class; 表達了void這個類的類類型
    getName為這個類的類類型的具體名稱 
    c1.getName ---> int
    c2.getName ---> java.lang.String 類的全稱
    c2.getSimpleName ---> String 不包含包名的類的名稱

四. Java方法反射的基本操作

  1.獲取A類中的print(int,int)方法:
     ①要獲取一個方法就是獲取類的信息俭尖,獲取類的信息首先要獲取類的類類型
          A a1=new A();  
         Class c= a1.getClass();
     ②獲取方法 由名稱和參數(shù)列表來決定
         getMethod獲取的是public方法氢惋,                
         getDelcaredMethod獲取自己聲明的方法
         Method m =c.getMethod(methodName,paramtypes);   //paramtypes可以用數(shù)組的形式  表示new Class[]{int.class,int.class}洞翩,也可以直接列舉類類型

     2.方法的反射操作:是用m對象來進行方法調(diào)用,和a1.print(10,20)調(diào)用的方法相同 m.invoke(a1焰望,new Object[]{10,20})
        Object o=m.invoke(對象名,參數(shù));//方法如果沒有返回值返回null骚亿,如果有返回值返回具體值,參數(shù)可用數(shù)組的方式表示熊赖,也可以直接列舉来屠,沒有參數(shù)就不寫。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末震鹉,一起剝皮案震驚了整個濱河市俱笛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌传趾,老刑警劉巖迎膜,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浆兰,居然都是意外死亡磕仅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門簸呈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榕订,“玉大人,你說我怎么就攤上這事蜕便〗俸悖” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵轿腺,是天一觀的道長两嘴。 經(jīng)常有香客問我,道長吃溅,這世上最難降的妖魔是什么溶诞? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮决侈,結(jié)果婚禮上螺垢,老公的妹妹穿的比我還像新娘。我一直安慰自己赖歌,他們只是感情好枉圃,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庐冯,像睡著了一般孽亲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上展父,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天返劲,我揣著相機與錄音玲昧,去河邊找鬼。 笑死篮绿,一個胖子當著我的面吹牛孵延,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亲配,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尘应,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吼虎?” 一聲冷哼從身側(cè)響起犬钢,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎思灰,沒想到半個月后玷犹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡官辈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年箱舞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拳亿。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖愿伴,靈堂內(nèi)的尸體忽然破棺而出肺魁,到底是詐尸還是另有隱情,我是刑警寧澤隔节,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布鹅经,位于F島的核電站,受9級特大地震影響怎诫,放射性物質(zhì)發(fā)生泄漏瘾晃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一幻妓、第九天 我趴在偏房一處隱蔽的房頂上張望蹦误。 院中可真熱鬧,春花似錦肉津、人聲如沸强胰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偶洋。三九已至,卻和暖如春距糖,著一層夾襖步出監(jiān)牢的瞬間玄窝,已是汗流浹背牵寺。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恩脂,地道東北人缸剪。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像东亦,于是被迫代替她去往敵國和親杏节。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本篇文章已授權(quán)微信公眾號guolin_blog(郭霖)獨家發(fā)布 轉(zhuǎn)載請注明出處:https://www.jians...
    ming152閱讀 6,796評論 4 79
  • 坐地鐵聽到一個女的在和人打電話典阵,貌似是推銷啥產(chǎn)品奋渔,什么這個投資很穩(wěn)定,和另外一個小組投資不一樣壮啊,利潤我說出來怕嚇到...
    鮭魚sake閱讀 336評論 0 0
  • 有沒有發(fā)現(xiàn)歹啼,你走路時玄渗, 討厭車,你開車時 狸眼, 討厭行人藤树,你打工時 , 覺得老板太強勢 拓萌,太摳門岁钓, 你當老板后 ,又...
    學霸教練李斌閱讀 278評論 0 0
  • 姓名:顏學志 公司:上海孚因流體動力設備股份有限公司 【日精進打卡第25天】 【知~學習】 《六項精進》3遍共32...
    一縷白發(fā)閱讀 395評論 0 50