-
/** * 成員變量也是對象 * java.lang.reflect.Field * Field類封裝了關于成員變量的操作 * getFields()方法獲取的是所有public的成員變量 * getDeclaredFields()獲取的是所有自定義的成員變量 */ /* * 構造函數也是對象 * java.lang.Constructor封裝了對構造函數的信息 * getConstructors()獲取所有public的構造函數 * getDeclaredConstructors()獲取所有的構造函數信息 */查看全部
-
@ClassUtil.java——(下) /** * 打印對象的構造函數的信息 * @param obj */ public static void printConMessage(Object obj){ Class c = obj.getClass(); /* * 構造函數也是對象 * java.lang. Constructor中封裝了構造函數的信息 * getConstructors獲取所有的public的構造函數 * getDeclaredConstructors得到所有的構造函數 */ //Constructor[] cs = c.getConstructors(); Constructor[] cs = c.getDeclaredConstructors(); for (Constructor constructor : cs) { System.out.print(constructor.getName()+"("); //獲取構造函數的參數列表--->得到的是參數列表的類類型 Class[] paramTypes = constructor.getParameterTypes(); for (Class class1 : paramTypes) { System.out.print(class1.getName()+","); } System.out.println(")"); } } }查看全部
-
類型的說明查看全部
-
測試類代碼查看全部
-
ClassUtil類代碼: //首先要獲取類的類類型 Class c = obj.getClass(); System.out.println("類的類名稱是:"+c.getName()); /** * Method類,方法對象 * 一個成員方法就是一個method對象 * getMethods()獲得的就是所有public的方法,包括從父類繼承而來的 * getDeclaredMethods()是獲取該類自己聲明的所有方法,不考慮訪問權限 */ Method[] m = c.getMethods(); for(int i =0;i<m.length;i++) { //獲得方法的返回值類型的類類型 Class returntype = m[i].getReturnType(); System.out.print(returntype.getName()+" "); //獲得方法的名稱 System.out.print(m[i].getName()+"("); //獲取方法的參數類型-->得到的是參數列表的類型的類類型 Class[] paramstype = m[i].getParameterTypes(); for (Class class1 : paramstype) { System.out.print(class1.getName()+","); } System.out.println(")"); }查看全部
-
Class.forName("類的全稱")查看全部
-
OfficeBetter類查看全部
-
Word類實現OfficeAble接口查看全部
-
Class.forName("類的全稱") ·不僅表示了類的類類型,還代表了動態加載類 ·請大家區分編譯、運行 ·編譯時刻加載類是靜態加載類,運行時刻加載類是動態加載類 --> new創建對象:是靜態加載類,在編譯時刻就需要加載所有的【可能使用到的類】。有一個類有問題(如不存在),都不能通過編譯,會報錯。 --> Class.forName()通過動態加載類,可以用到一個類時,才進行加載。 【功能性的類盡量使用動態加載,并對新添的類實現功能性接口(標準),這樣就不用重新編譯】查看全部
-
Class類. Class.forName("類的全稱")查看全部
-
關于Class類查看全部
-
1)在面向對象的世界里,萬事萬物皆對象。 java語言中,靜態的成員、普通數據類型是不是對象呢?類是誰的對象呢? ...類是對象,類是java.lang.Class類的實例對象 2)這個對象到底如何表示 有三種表示方式, 以class Foo為例,Foo這個類 也是一個實例對象,Class類的實例對象,如何表示呢? 【方式一】 Class c1 = Foo.class; //第一種表示方式 --->實際在告訴我們任何一個類都有一個隱含的靜態成員變量 【方式二】 Class c2 = foo1.getClass(); //第二種表達方式,已經知道該類的對象通過getClass方法 /*官網 c1,c2表示了Foo類的類類型(class type) * 萬事萬物皆對象, * 類也是對象,是class類的實例對象 * 這個對象我們成為該類的類類型 * */ ##不管c1 or c2 都代表了Foo類的類類型,一個類只可能是Class類的一個實例對象 System.out.println(c1 == c2); //輸出結果為true 【方式三】 c3 = Class.forName("com.imooc.reflect.Foo"); (要try..catch捕獲異常) ?通過類的類類型創建該類的對象實例 我們完全可以通過類的類類型創建該類的對象實例 --->通過c1或c2或c3創建Foo的實例對象 ?。∏疤嵋袩o參數的構造方法 Foo foo = (Foo)c1.newInstance();查看全部
-
類是對象,它是java.lang.Class的對象查看全部
-
方法的反射 1獲取類類型Class c=a1.getClass(); 2獲取方法Method b=c.getMethod(); 3方法的反射(方法的調用)b.invoke();查看全部
-
類類型的創建 Class c=Foo.class//Foo為一個類 Class c=fool.getClass()//fool為Foo類的一個對象 Class c=Class.forName();查看全部
舉報
0/150
提交
取消