-
new創(chuàng)建對象是靜態(tài)加載,在編譯時刻就需要加載所有的可鞥使用到的類
查看全部 -
獲取方法對象,用方法對象進行反射操作
查看全部 -
類的類類型:
查看全部 -
類本身就是對象,是java.lang.Class類的實例對象
查看全部 -
類是對象,類是class的對象查看全部
-
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類是實例對象
class Foo{
}
Foo foo1 = new Foo();
JAVA 反射的三種使用方式
類名.Class
類的實例對象.getClass()
Class.forName("含包的類名稱完整路徑")
Class c1 = Foo.class;
Class c2 = foo1.getClass();
Class c3 = Class.forName("com.imooc.reflect.Foo"); //完整路徑
c1 c2 c3 為同一個class的實例
通過類的類類型創(chuàng)建該類的對象實例--》通過 c1 or c2 or c3創(chuàng)建Foo的實例
Foo foo = (Foo) c1.newInstance();//需要有無參數的構造方法
查看全部 -
通過類類型動態(tài)加載類,newInstance關鍵字
查看全部 -
通過NEW關鍵字創(chuàng)建對象是靜態(tài)加載類,在編譯的時候就要加載所有可能用到的類
查看全部 -
Class c=g.getClass();
c.getDeclaredMethods();獲取的是該類聲明的方法不問訪問權限
c.getMethods();獲取的是該類聲明方法返回的public的方法
查看全部 -
class.forName("")
方法.getClass()
查看全部 -
反射查看全部
-
String是Class的實例,String為該類的類型
查看全部 -
Class 類
類是對象,類是java.lang.class類的實例對象
查看全部 -
new創(chuàng)建對象是靜態(tài)加載類,在編譯時刻就需要加載所有可能用到的類,如果一個項目中有100個方法,99個沒問題,只有一個有問題,那么如果想要調用好用的類也是沒法調用的,就是因為有一個有問題,這就是靜態(tài)架子啊的弊端。
查看全部
舉報