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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 反射的操作都是編譯之后的操作

    查看全部
  • 方法的反射

    方法反射的操作

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

    查看全部
  • 導出方法:右擊/Refactor/Extract Method...

    查看全部
  • ?Method類,方法對象
    ? 一個成員方法就是一個Method對象
    ??? getMethods()方法獲取的是所有的public的函數,包括父類繼承而來的
    ??? getDeclaredMethods()獲取的是所有該類自己聲明的方法,不問訪問權限

    查看全部
  • 靜態成員

    Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。當然,鑒于他作用的特殊性更推薦用類名訪問

    查看全部
  • 靜態成員

    Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。當然,鑒于他作用的特殊性更推薦用類名訪問

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

    2018-08-05

  • Class類

    Class.forName("類的全稱")

    • 不僅表示了類的類類型,還代表了動態加載類

    • 請大家區分編譯、運行

    • 編譯時刻加載類是靜態加載類、運行時刻加載類是動態加載類

    查看全部
  • package?com.imooc.reflect;
    
    public?class?ClassDemo1?{
    ????public?static?void?main(String[]?args)?{
    ????????//Foo的實例對象如何表示
    ????????Foo?foo1?=?new?Foo();//foo1就表示出來了.
    ????????//Foo這個類?也是一個實例對象,Class類的實例對象,如何表示呢
    ????????//任何一個類都是Class的實例對象,這個實例對象有三種表示方式
    ????????
    ????????//第一種表示方式--->實際在告訴我們任何一個類都有一個隱含的靜態成員變量class
    ????????Class?c1?=?Foo.class;
    ????????
    ????????//第二中表達方式??已經知道該類的對象通過getClass方法
    ????????Class?c2?=?foo1.getClass();
    ????????
    ????????/*官網?c1?,c2?表示了Foo類的類類型(class?type)
    ?????????*?萬事萬物皆對象,
    ?????????*?類也是對象,是Class類的實例對象
    ?????????*?這個對象我們稱為該類的類類型
    ?????????*?
    ?????????*/
    ????????
    ????????//不管c1??or?c2都代表了Foo類的類類型,一個類只可能是Class類的一個實例對象
    ????????System.out.println(c1?==?c2);
    ????????
    ????????//第三種表達方式
    ????????Class?c3?=?null;
    ????????try?{
    ????????????c3?=?Class.forName("com.imooc.reflect.Foo");
    ????????}?catch?(ClassNotFoundException?e)?{
    ????????????//?TODO?Auto-generated?catch?block
    ????????????e.printStackTrace();
    ????????}
    ????????System.out.println(c2==c3);
    ????????
    ????????//我們完全可以通過類的類類型創建該類的對象實例---->通過c1?or?c2?or?c3創建Foo的實例對象
    ????????try?{
    ????????????Foo?foo?=?(Foo)c1.newInstance();//需要有無參數的構造方法
    ????????????foo.print();
    ????????}?catch?(InstantiationException?e)?{
    ????????????//?TODO?Auto-generated?catch?block
    ????????????e.printStackTrace();
    ????????}?catch?(IllegalAccessException?e)?{
    ????????????//?TODO?Auto-generated?catch?block
    ????????????e.printStackTrace();
    ????????}
    ????
    ????????
    ????}
    }
    class?Foo{
    ????
    ????void?print(){
    ????????System.out.println("foo");
    ????}
    }


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

    2018-08-05

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

    2018-08-05

  • JAVA-Reflect專題

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

    2018-08-05

  • m.invoke()繞過編譯就繞過了泛型

    查看全部
  • m.invoke(對象,參數new Object[]{10,20});方法如果沒有返回值返回null,有返回值返回具體的返回值。

    查看全部
  • Field[] fs=c.getFields()獲取所有的public 的成員變量的信息

    Field[] fs=c.getDeclaredFields()獲取該類自己聲明的成員變量的信息

    for(Field a:fs){

    Class b=a.getType();得到成員變量的類型的類類型

    }

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

    getConstructor獲取所有的public的構造函數

    constructor[] a=c.getConstructor();

    constructor[] a=c.getDeclaredConstructor();

    for(constructor b:a){

    Class[]? c=b.getParameterTypes();獲取構造函數的參數列表,得到參數列表的類類型



    }






    查看全部
  • public static void printClassMessage(Object obj){

    Class c=obj.getClass();

    Method[] ms=c.getMethods();getmethods獲取所有的public的函數,包括父類繼承而來的。

    c.getDeclaredMethods()獲取所有該類自己聲明的方法,不問訪問權限

    for(int i=0;i<ms.length;i++){

    Class a=ms[i].getReturnType();得到方法的返回值類型的類類型

    String b=ms[i].getName();得到方法的名稱

    Class[] c=ms[i].getParameterTypes();獲取參數類型。得到的是參數列表的類型的類類型

    for(Class d:c){

    String a=d.getName()

    }

    }


    查看全部
  • Class c=Class.forName(args[0])動態加載類

    office oa=(office)c.newInstance()

    使用子類實現這個接口

    編譯時javac office word即可


    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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