亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

反射——Java高級開發必須懂的

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 帶泛型的數組 和不帶的 在類類型上相同 只防止編譯時出錯,繞過編譯,運行時泛型內放不同類型參數不會報錯
    查看全部
  • 用反射獲得目標內里面的方法后,用invoke調用 如圖
    查看全部
  • 方法的反射: 1.獲取A類中的print(int,int)方法: ①要獲取一個方法就是獲取類的信息,獲取類的信息首先要獲取類的類類型 A a1=new A(); Class c= a1.getClass(); ②獲取方法 由名稱和參數列表來決定,getMethod獲取的是public方法,getDelcaredMethod獲取自己聲明的方法 Method m =c.getMethod(methodName,paramtypes);//paramtypes可以用數組的形式 表示new Class[]{int.class,int.class},也可以直接列舉類類型 2.方法的反射操作:是用m對象來進行方法調用,和a1.print(10,20)調用的方法相同 m.invoke(a1,new Object[]{10,20}) Object o=m.invoke(對象名,參數);//方法如果沒有返回值返回null,如果有返回值返回具體值,參數可用數組的方式表示,也可以直接列舉,沒有參數就不寫 public Class A{ public void print(){}; public void Print(Sting a,String b){} public void Print(int a,int b){}; } public Class B{ public static void main(String[] args){ A a1 = new A(); Class c= a1.getclass; Method getMet=c.getMethod("print",String.class,String.class); Object obj=getMet.invoke(a1,"df","df"); } }
    查看全部
  • 如何獲得class A里面的方法已知 A a1=new A();
    查看全部
  • 二、構造函數是java.lang.Constructor類的對象 1、通過Class.getConstructor()獲得Constructor[]所有公有構造方法信息 2、建議getDeclaredConstructors()獲取自己聲明的構造方法 3、Constructor.getName():String 4、Constructor.getParameterTypes():Class[] 成員變量也是對象,是java.lang.reflect.Field的對象;
    查看全部
  • Java反射機制——獲取成員變量&構造函數 一、成員變量是java.lang.reflect.Field的對象 1、Field類封裝了關于成員變量的操作 2、Field[] fs = c.getFields()方法獲取所有public的成員變量Field[]信息 3、c.getDeclaredFields獲取的是該類自己聲明的成員變量信息 4、field.getType()獲得成員類型的類類型 5、field.getName()獲得成員的名稱
    查看全部
  • 基本數據類型的類類型: Class c1=int.class; c1.getName=int; Class c2=String.class; Class c3=void.class; c2.getName=void; Class c=obj.getClass(); 如何獲取類類型的信息: c.getName(); c.getMethods();獲取類里面的public的函數,包括父類的方法 得到Method[]數組,如何得到方法的方法名、返回值、返回類型 見圖
    查看全部
  • 萬事萬物皆對象 只有static和變量不是(例如int a=5,a不是) 動態加載類: Class.forName("類的全程") 為動態加載(運行加載) (編譯時加載時靜態加載,new創建的對象是靜態加載,在編譯時就要加載所有可能用到的類) 希望用哪個就加載哪個———這就是動態加載的用處 先創建一個類類型class 然后在用class創建實例(因為只能指定一個實例,同時現實中可能有多種類,所以只要創建一個規范借口就可以,以后用那種就實現這個借口類就可以) ok!
    查看全部
  • 創建一個類類型的三種方法: 1)Foo類的對象是 foo1 Class c2 = foo1.getClass() --->已知該類的對象,通過該類的對象通過getClass方 法獲取Foo類的類類型 2)Foo類的類類型c1指的是Class的對象 Class c1 = Foo.class; 3)Class c3=Class.forName("com.imooc.reflect.Foo"); 三種方式創建的類類型都相等,都是Foo的類類型; Class的用法: 可以通過類的類類型創建Foo的實例對象 Foo foo=(Foo)c1.newInstance(); 4)我們可以通過類的類類型來創建該類的實例對象 Foo foo = (Foo)c1.newInstance(); 前提是需要有無參數的構造方法,它要調用
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • java動態加載類,如果在編譯期就寫死的話,后面的代碼不好維護,如果改變類的話,整段代碼需要重新維護。但是如果動態加載類的話,可以動態加載接口,需要具體的實現再直接添加類即可。
    查看全部
  • 筆記1
    查看全部
  • 第三種方式
    查看全部
    0 采集 收起 來源:Class類的使用

    2017-10-23

  • 兩種得到class對象的方式
    查看全部
    0 采集 收起 來源:Class類的使用

    2017-10-23

  • class對象三種獲取方式 1.Class c1= A.class; 2.Class c2=a.getClass() 3.Class c3 = forNameClass(pakcage.A) 反射機制是在編譯后的 所以可以繞過標準 所有的new 對象都是靜態編譯過程,就是必須編譯時會檢查 invoke方法是反射操作的核心 Mothed m = c1.getMethod(方法名 ,參數列表) m.invoke(代理的對象, 參數) 反射是繞過編譯的。 集合的泛型只為了防止錯誤輸入,編譯階段有效,繞過編譯,使用反射是不會控制集合中的數據類型的。 方法的反射使用: Class c1=對象a.getClass() Method m = c1.getMethod(方法名,參數列表) Object o =m.invoke(對象a,參數列表,可以一一列舉,也可以用數組)
    查看全部
  • 方法的反射: 1.獲取A類中的print(int,int)方法: ①要獲取一個方法就是獲取類的信息,獲取類的信息首先要獲取類的類類型 A a1=new A(); Class c= a1.getClass(); ②獲取方法 由名稱和參數列表來決定,getMethod獲取的是public方法,getDelcaredMethod獲取自己聲明的方法 Method m =c.getMethod(methodName,paramtypes);//paramtypes可以用數組的形式 表示new Class[]{int.class,int.class},也可以直接列舉類類型 2.方法的反射操作:是用m對象來進行方法調用,和a1.print(10,20)調用的方法相同 m.invoke(a1,new Object[]{10,20}) Object o=m.invoke(對象名,參數);//方法如果沒有返回值返回null,如果有返回值返回具體值,參數可用數組的方式表示,也可以直接列舉,沒有參數就不寫 public Class A{ public void print(){}; public void Print(Sting a,String b){} public void Print(int a,int b){}; } public Class B{ public static void main(String[] args){ A a1 = new A(); Class c= a1.getclass; Method getMet=c.getMethod("print",String.class,String.class); Object obj=getMet.invoke(a1,"df","df"); } }
    查看全部

舉報

0/150
提交
取消
課程須知
童鞋們,學習本課程前需要熟悉Java面向對象的思想,并能掌握Java IO輸入輸出流、集合和泛型等知識。可參考慕課網Java入門的一、二、三季以及我的文件我做主——Java IO流課程。
老師告訴你能學到什么?
1、能夠理解并應用反射機制。 2、能夠了解反射機制在集合泛型中的應用。 3、有利于更好的學習框架等Java高級技術。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!