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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 筆記總結1
    查看全部
  • xx的類類型? xx類的類類型

    查看全部
  • 動態加載類,在運行時刻加載

    Class c = Class.forName("類的全稱");

    //通過類類型,創建該類對象

    OfficeAble oa = (OfficeAble)c.newInstance():


    查看全部
  • new 創建對象,是靜態加載類,在編譯時需要加載所有可能使用到的類


    查看全部
  • class Foo

    Foo foo1 = new Foo();

    Class c1 = Foo.class;

    Class c2 = foo1.getClass();

    Class c3 = Class.forName("com.imooc.reflect.Foo"); //完整路徑


    通過類的類類型創建該類的對象實例--》通過 c1 or c2 or c3創建Foo的實例

    Foo foo = (Foo) c1.newInstance();//需要有無參數的構造方法


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

    2018-09-25

  • Demo?demo?=?new?Demo();
    Class?c1?=?Demo.class;
    Class?c2?=?demo.getClass();
    Class?c3?=?Class.forName("Demo在src下的絕對路徑");

    c1 = c2 = c3 (即三者都是指向同一個引用對象)

    實例化則可以通過Demo demo = (Demo)c1(or c2 or c3).newInstance()獲取demo對象。但需要注意:newInstance()會調用Demo類的無參構造函數,如果沒有無參的構造函數會報錯。

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

    2018-09-24

  • 這個時候word這個類已經有了,所以可以加載到,但是Excel沒有存在,所以加載不到,編譯不通過。

    但是這個時候程序還是無法執行,因為靜態加載機制中,只要有1個加載不到導致其他的都不能編譯通過,但是我們想要的就是需要用到哪一個就去加載哪一個

    查看全部
  • 功能性的類使用動態加載而不是靜態加載,類類型是在運行時加載類,new的方式是在編譯的時候加載全部的類,屬于靜態加載類

    查看全部
  • 動態加載類:

    1、使用反射的方式,運行時加載所需類

    2、使用類類型實例化具體對象,并返回統一接口的實例對象

    3、主只需要編譯一次

    查看全部
  • 通過Class,Method來認識泛型的本質(javafanshe);

    ArryList<String> list= new ArrayList<String>(); ?往集合添加值時,只能添加String類型。

    反射的操作都是編譯之后的操作

    Java中集合的泛型,是防止錯誤輸入的,只在編譯階段有效,繞過編譯就無效了。

    查看全部
  • 用java反射獲取print()方法:

    1. 首先需要獲取類的信息--A a1=new A(); ? ?Class c=a1.getClass();

    2. 獲取方法-(由名稱和參數列表來決定)-----Method m=c.getMethod("print",int.class,int.class); ?其中print 是方法名稱

    3. 方法的反射操作--Object 0 = m.invoke(a1,10,20);

    查看全部
  • Object 0 = m.invoke(a1,10,20);其中a1是A這個類的實例對象。

    查看全部
  • 參數列表就是參數已逗號隔開所形成的列表

    1)如何獲取某個方法

    方法的名稱和方法的參數列表才能唯一決定某個方法

    2)方法的反射操作

    method.invoke(對象,參數列表)

    反射:方法調用的參數列表

    查看全部
  • 關于反射的相關信息--第二節

    成員變量也是對象

    java.lang.reflect.Field ? ?Field類封裝了關于成員變量的操作

    Field ?c.getDeclaredFields(); 獲取的是該類自己聲明的成員變量的信息

    (c為類的信息 ?obj.getClass())

    Class field.getType(); ? 得到成員變量的類型的類類型 例如 ?int.class

    String field.getName(); 得到成員變量的名稱


    構造函數也是對象 ? ?java.lang.Constructor封裝了構造函數的信息

    Constructor[] ?c.getDeclaredConstructor();獲取所有本類中自身創建所有的構造函數

    Class[] constructor.getParameterTypes();得到的是參數列表的類類型

    查看全部
  • java反射相關知識點:

    要獲取類的信息 首先要獲取類的類型

    Class c= obj.getClass(); ? ? ?c.getName();獲取類的名稱


    Method類,方法對象 ?一個成員方法,就是一個Method對象

    Method[] c.getDeclaredMethods(); ? 獲取本類的所有聲明的方法

    Class ??c.getDeclaredMethods().getReturnType();得到方法的返回值類型

    Class??c.getDeclaredMethods()[i].getParameterTypes();得到參數列表的類型的類類型

    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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