-
@Java反射機制——動態加載類 1、靜態加載類,是編譯時刻加載;動態加載類,是運行時刻加載 2、new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。 3、Class.forName()通過動態加載類,可以用到一個類時,才進行加載。 【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編譯】 1.Clss.forName("類的全稱") 不僅表示了類的類類型,還代表了動態加載類 請大家區分編譯、運行 編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類 2.//new 創建對象是靜態加載類,在編譯時刻就需要加載所有的可能使用到的類。eg word excel //通過動態加載類可以解決該問題 //動態加載類,在運行時刻加載 Class c=Class.forName(args[0]); //通過類類型,創建該類對象 OfficeAble oa=(OfficeAble)c.newInstance();//word 和excel都想加載就用一個標準oa oa.start(); //編寫一個標準接口 interface OfficeAble { public void start(); } //讓word 和excel繼承oa class Excel implements OfficeAble { public void start(){ } } 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】查看全部
-
Class類 1)在面向對象的世界里,萬事萬物皆對象。 類是對象,類是java.lang.Class類的實例對象。 There is a class named Class 2)//Foo的實例對象如何表示 Foo foo1=new Foo();//foo1就表示出來了 //Foo這個類也是一個實例對象,Class類的實例對象,如何表示呢? //任何一個類都是Class的實例對象,這個實例對象有三種表示方式 //第一種表示方式--->實際在告訴我們任何一個類都有一個隱含的靜態成員變量class Class c1=Foo.class; //第二種表達方式--->已經知道該類的對象通過getClassF方法 Class c2=foo1.getClass(); //官網c1,c2表示了Foo類的類類型(class type),萬事萬物皆對象,類也是對象,是Class類的實例對象 //這個對象我們稱為該類的類類型 //不管c1 or c2都代表了Foo類的類類型,一個類只可能是Class類的一個實例對象 //第三種表達方式 Class c3=null; c3=Class.forName("com.imooc.reflect.Foo"); //我們完全可以通過類的類類型創建類的對象實例--->通過c1 or c2 or c3創建Foo的實例對象 Foo foo=(Foo)c1.newInstance();//需要有無參數的構造方法 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】查看全部
-
通過方法的反射來操作,繞過編譯。查看全部
-
java中集合的泛型,是防止錯誤輸入的,只在編譯階段有效,繞過編譯就無效了。查看全部
-
方法的反射查看全部
-
第三種方式一定要準確的包,不能不寫包名查看全部
-
Class對象是類類型查看全部
-
反射是繞過編譯來執行的 是運行中執行 泛型是設置輸入檢查的 是在編譯的時候檢測的 編譯后沒有泛型查看全部
-
成員變量也是對象查看全部
-
add查看全部
-
類是java.lang.class類的對象查看全部
-
要獲得類的信息。首先要獲得類的類類型查看全部
-
類是 java.lang.class的對象查看全部
-
Reflect:反射查看全部
-
類的加載查看全部
舉報
0/150
提交
取消