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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 動態加載類比靜態加載類好很多
    查看全部
  • 動態加載
    查看全部
  • Class c1=Foo.class Class c2=foo.getClass() Class c3=Class.forName("Foo")
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • 類的類類型
    查看全部
    0 采集 收起 來源:Class類的使用

    2015-05-05

  • Class類
    查看全部
    0 采集 收起 來源:Class類的使用

    2015-05-05

  • JAVA-REFLECT專題
    查看全部
    0 采集 收起 來源:Class類的使用

    2015-05-05

  • 通過方法的反射來繞過編譯
    查看全部
  • Java反射機制——通過反射了解集合泛型的本質 1:反射的操作都是編譯之后的操作;就是運行階段 2:java中集合的泛型是防止錯誤輸入的;只在編譯階段有效,只要繞過編譯就無效啦 我們可以通過方法的反射來操作,繞過編譯 eg: ArrayList list1=new ArrayList(); ArrayList<String> list2=new ArrayList<String>(); Class c1=list1.getClass(); Class c2=list2.getClass(); System.out.print(c1==c2);//true Method m=c2.getMethod("add",Object.class); m.invoke(list2,20);//向list2集合中添加一個int 型的值;繞過編譯 當然是不能直接foreach list2集合的,會報類型轉換錯誤
    查看全部
  • 方法的反射操作
    查看全部
  • 方法的反射 一、如何獲取某個方法:方法的【名稱】和【方法的參數列表】才能【唯一確定】某個方法 1、要獲取一個類的某個方法,需要先得到類類型 2、通過Class.getMethod(name,parameterTypes)獲得public的該方法:如c.getMethod("print",new Class[]{int.class,int.class})或者參數寫成int,int; ——> 來獲取 public void print(int a,int b) 3、同樣getDeclaredMethdo(name,paramterTypes)獲得自己聲明的該方法 二:方法的反射操作;就是用method對象進行方法調用;當然還是需要傳參的 method.invoke(對象實例,參數列表) 2.1:invoke(user,new Object[]{10,20})倘若沒有參數就可省略:invoke(user) 2.2:invoke(user,10,20)//直接傳參 二、方法的反射操作:method.invoke(對象,參數列表); 1、方法反射:通過調用方法的對象invoke(【對象】,參數列表),來操作定義該方法的【對象】,實現該方法 2、獲得方法的對象后,用對象method來進行方法調用Object o = method.invoke(c,new Object[]{10,20})也可以直接寫10,20。若方沒有返回值,則返回null。 類名 實例名 = new 類名(); Class cls = 實例名.getClass(); Method m=cls.getMethod("方法名",new Class[]{基本數據類型.class[,基本數據類型.class...]}); Method m=cls.getMethod("方法名",基本數據類型.class[,基本數據類型.class...]); Object o=m.invoke(實例名,new Object[]{參數值[,參數值...]}); Object o=m.invoke(實例名,參數值[,參數值...]);
    查看全部
  • 想獲取類的信息,首先獲取類的類類型 4.獲取成員變量信息及成員函數信息 (1)獲取成員變量信息 getFileds()-->打印所以public成員變量信息 getDeclaredFiled()-->打印自己聲明的成員變量信息 (2)提取方法的工具: 右擊-->Refactor(重構)-->ExtractMethod()導出方法 (3)樣例 類1(靜態方法,打印成員變量信息)--->類2(Main中測試)
    查看全部
  • Java反射機制——獲取成員變量&構造函數 一、成員變量是java.lang.reflect.Field的對象 1、Field類封裝了關于成員變量的操作 2、Field[] fs = c.getFields()方法獲取所有public的成員變量Field[]信息 3、c.getDeclaredFields獲取的是該類自己聲明的成員變量信息 4、field.getType()獲得成員類型的類類型 5、field.getName()獲得成員的名稱 二、構造函數是java.lang.Constructor類的對象 1、通過Class.getConstructor()獲得Constructor[]所有公有構造方法信息 2、建議getDeclaredConstructors()獲取自己聲明的構造方法 3、Constructor.getName():String 4、Constructor.getParameterTypes():Class[] 成員變量也是對象,是java.lang.reflect.Field的對象; Field類封裝了關于成員變量的操作;getFields()方法獲取的是所有的public的成員變量的信息; getDeclaredFields獲取的是該類自己聲明的成員變量的信息; java/lang.Constructor中封裝了構造函數的信息 getConstructors獲取了酥皮的public的構造函數; getDeclaredConstructor得到所有的構造函數
    查看全部
  • Class類
    查看全部
  • Method方法
    查看全部
  • 基本數據類型,void關鍵字都存在類類型 class.getMethods()方法獲取是該類的所有public方法,包括從父類繼承的方法; class.getDeclareMethods()方法獲取該類自行聲明的所有方法,不論訪問權限; method.getName()獲取方法名 method.getReturnType()獲取方法的返回值 method.getParameterTypes(),獲取方法的參數類型的類類型數組class[] 三獲取方法信息: 一、基本的數據類型,void關鍵字等都存在類類型 Class c = 基類.class (int,String,double,void等) 二、Class類的基本API操作的 1、c.getName()可以獲取類的名稱 2、c.getSimpleName();//不包含包名的類的名稱 3、c.getMethods()獲取類的【public方法】集合,【包括繼承來的】 ***注意【所有方法都是Method類的對象】 4、c.getDeclaredMethods()獲取的是所有該類【自己聲明】的方法,【不問訪問權限】 三、Method類提供了一些操作方法的方法 1、.getReturnType()得到該方法的返回值類型的類類型(class),如int.class String.class 2、.getName()得到方法的名稱 3、.getParameterTypes()獲得參數列表類型的類類型,如參數為(int,int)則得到(int.class ,int class) Class c1 = int.class; int的類類型 Class c2 = String.class; String類的類類型 String類字節碼 Class c3 = double.class; double這個數據類類型的字節碼表示方式 Class c4 = Double.class; Double這個類的類類型字節碼表示方式 Class c5 = void.class; 表達了void這個類的類類型 getName為這個類的類類型的具體名稱 c1.getName ---> int c2.getName ---> java.lang.String 類的全稱 c2.getSimpleName ---> String 不包含包名的類的名稱
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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