-
構造函數也是對象,是java.lang.Constructor類的對象查看全部
-
要想獲取類的信息,首先要獲取該類的類類型查看全部
-
getFields()方法獲取的是所有的public的成員變量的信息 getDeclaredFields()獲取的是該類自己聲明的成員變量的信息 getType()方法獲取成員變量的類型的類類型查看全部
-
成員變量也是對象,是java.lang.reflect.Field類的實例對象,Field類封裝了關于成員變量的操作查看全部
-
Method類,方法對象 一個成員方法就是一個Method對象 getMethods()方法獲取的事所有的public的函數,包括父類繼承而來的; getDeclaredMethods()獲取的是所有該類自己聲明的方法,不問訪問權限查看全部
-
Class c1 = int.class;// int的類類型查看全部
-
反射是繞過編譯來執行的 是運行中執行 泛型是設置輸入檢查的 是在編譯的時候檢測的 編譯后沒有泛型查看全部
-
@方法的反射——(下) @try——catch...內容 //Method m = c.getMethod("print", new Class[]{int.class,int.class}); Method m = c.getMethod("print", int.class,int.class); //方法的反射操作 //a1.print(10, 20);方法的反射操作是用m對象來進行方法調用 和a1.print調用的效果完全相同 //方法如果沒有返回值返回null,有返回值返回具體的返回值 //Object o = m.invoke(a1,new Object[]{10,20}); Object o = m.invoke(a1, 10,20); System.out.println("=================="); //獲取方法print(String,String) Method m1 = c.getMethod("print",String.class,String.class); //用方法進行反射操作 //a1.print("hello", "WORLD"); o = m1.invoke(a1, "hello","WORLD"); System.out.println("==================="); // Method m2 = c.getMethod("print", new Class[]{}); Method m2 = c.getMethod("print"); // m2.invoke(a1, new Object[]{}); m2.invoke(a1);查看全部
-
靜態加載類:編譯時加載的類(用new關鍵字創建的類) 動態加載類:運行時加載的類(用類類型創建的類,需要有接口,活抽象父類) 如 Class c = Class.forName("類全名");就是動態加載。 接口的引用 = c.newInstance();//創建實例對象,需要有無參構造方法。查看全部
-
獲得類類型的方式有三種: 1. 在得知該類的類名時直接在后面.class就可以得到一個class類型的對象 Class c = Foo.class 2. 在已有該類的實例對象的時候,通過這個實例對象調用.getClass()方法,也可以得到一個class類型的對象 Class c2 = foo.getClass(); 3. 在得知該類的路徑的時候,調用Class的靜態方法ClassForName()方法,就可以得到一個Class類型的對象 Class c3 = Class.ClassForName(com.imooc.reflect.Foo) 用該類的類類型可以創建該類實例對象,用newInstance()方法再強轉為該類 Foo foo = (Foo)c.newInstance();查看全部
-
類是java.lang.Class類的實例對象查看全部
-
編譯時加載的是靜態的類,而運行時加載的是動態的類查看全部
-
編譯時加載的是靜態文件,運行時加載的是動態文件查看全部
-
創建Foo的實例,查看全部
-
萬事皆對象 兩種 不是對象, 1、基礎類型(int,double..) 但他有包裝類 2、靜態資源 類 是java.lang.Class 的對象查看全部
舉報
0/150
提交
取消