JAVA中的反射()
阿新 • • 發佈:2018-07-15
父類 運行 返回 type col 利用反射 class cep 值類型
java中取得類對象的方法有三種
1.getClass();但是缺點就是如果沒有類,就會出錯,然後編譯不過
2.class.forname("包+類");//如果沒有類,此方法也不會報錯,但在運行時會出錯
3.包+類.class
利用反射實例化
Class<?> cls = Class.forName("類+包");
Object obj = cls.newInstance();
取得類所在的包:
getPackage();//返回-- 類型 包名
getPackage().getName();//返回包名
取得類名:
class.getName(); //返回包名稱+類名稱class.getSimpleName();//返回類名稱
取得父類:
class.getSuperClass.getSimpleName();
取得類接口:
Class<?> cls [] = cls.getInterfaces(); for(...){ cls[i].getSimpleName(); }
取得構造方法:
java.lang.reflect包下: getConstructors();//返回所有構造 getConstructor(param);//返回指定構造
constructors.getModifiers();//獲取方法修飾符
constructors.getName();//獲取構造方法名稱
constructors.getParameterCount();//獲取構造方法參數個數
constructors.getParameterTypes();//獲取構造方法的參數類型constructors.getExceptionTypes();//獲取構造方法的異常類型
取得方法:
getMethods();//獲取類中所有方法 getMethod(name,Class<?>);//獲取指定方法 兩者都返回java.lang.reflect.Method; getName();//返回方法名稱 getModifiers();//返回方法修飾符 getParameterTypes();//返回參數類型 invoke(object,object...);//調用指定方法,調用時要有實例化對象,然後再設置參數;
getReturnType();//返回值類型
getDeclaredMethods();//獲取本類中的方法
JAVA中的反射()