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

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

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

難度入門
時長 1小時20分
學習人數
綜合評分9.67
760人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 功能性的類盡量使用動態加載而不使用靜態加載
    查看全部
  • new創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類。 使用Class.forName進行動態加載類,在運行時刻才會加載: Class c =Class.forName("Word"); 通過c.newInstance()來獲實例,獲得實例具體是哪個自行進行判斷,可以通過接口來實現復用。
    查看全部
  • 萬事萬物皆對象,類也是對象,是Class類的實例對象
    查看全部
    1 采集 收起 來源:Class類的使用

    2015-03-20

  • method包
    查看全部
  • 資料2
    查看全部
  • 資料1
    查看全部
  • new創建對象是靜態加載類,在編譯時刻就需要加載所有可能使用到的類
    查看全部
  • 類是java.lang.Class類的實例對象。 //三種表示方法,任何一個類都有一個隱含的靜態成員變量class Class c1 = Foo.class; Class c2=fool.getClass(); Class c3 = Class.forName("com.imooc.foo"); //c1, c2都代表了Foo類的類類型,一個類只可能是Class類的一個對象 System.out.println(c1==c2);//true 可以通過類的類型來創建該類的對象。
    查看全部
    0 采集 收起 來源:Class類的使用

    2018-03-22

  • 類是對象,類是java.lang.Class類的實例對象
    查看全部
    0 采集 收起 來源:Class類的使用

    2015-03-16

  • @Java反射機制——通過反射了解集合泛型的本質 1、反射的操作都是【編譯之后】的操作(因為編譯獲得class字節碼文件之后才能得到.class),即運行時操作 2、所以method.invoke()方法也是運行期運行,可以繞過編譯期。 二、驗證:對一個帶有泛型的數組添加不同于泛型的元素。 1、例如:List<String> list = new ArrayList<String>() 2、通過Method m = list.getClass().getMethod("add",Object.class);獲得list.add()方法的對象 3、m.invoke(list,"hello");m.invoke(list,1); 按理因為泛型的存在,不能添加整形"1"進去。因為invoke()是運行期操作,所以能夠通過編譯。 4、結果顯示,能夠插入"hello"和1,說明<>泛型只作用于編譯期,且只是為了規范輸入
    查看全部
  • @Java反射機制——方法反射的基本操作 一、如何獲取某個方法:方法的【名稱】和【方法的參數列表】才能【唯一確定】某個方法 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、同樣getDeclaredMethod(name,paramterTypes)獲得自己聲明的該方法 二、方法的反射操作:method.invoke(對象,參數列表); 1、方法反射:通過調用方法的對象invoke(【對象】,參數列表),來操作定義該方法的【對象】,實現該方法 2、獲得方法的對象后,用對象method來進行方法調用Object o = method.invoke(c,new Object[]{10,20})也可以直接寫10,20。若方沒有返回值,則返回null。
    查看全部
  • @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反射機制——獲取方法信息 一、基本的數據類型,void關鍵字等都存在類類型 Class c = 基類.class (int,String,double,void等) 二、Class類的基本API操作的 1、c.getName()可以獲取類的名稱 2、c.getSimpleName();//不包含包名的類的名稱 3、c.getMethods()獲取類的【public方法】集合,【包括繼承來的】 4、c.getDeclaredMethods()獲取的是所有該類【自己聲明】的方法,【不問訪問權限】 三、Method類提供了一些操作方法的方法 1、.getReturnType()得到該方法的返回值類型的類類型(class),如int.class String.class 2、.getName()得到方法的名稱 3、.getParameterTypes()獲得參數列表類型的類類型,如參數為(int,int)則得到(int.class ,int class)
    查看全部
  • @Java反射機制——動態加載類 1、靜態加載類,是編譯時刻加載;動態加載類,是運行時刻加載。 2、new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。 3、Class.forName()通過動態加載類,可以用到一個類時,才進行加載。 【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編譯】
    查看全部
  • @Java反射機制——Class類的使用 1.靜態的成員,普通數據類型不是對象 2.類是java.land.Class類的實例對象 3.任何一個類都是Class的實例對象,有三種表達方式 (1)Class c1 = 類名.class; (2)Class c2 = 類的實例對象.getClass(); (3)Class c3 = Class.forName(類名); 其中c1,c2,c3都是一樣的,即c1==c2.c1==c3,c2==c3;因為一個類只有一個類類型(class type) 4.通過類類型的newInstance()獲取類的實例對象;前提是該類有空參數的構造方法。
    查看全部
    0 采集 收起 來源:Class類的使用

    2015-03-15

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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