反射可動態載入類,實例化對象,呼叫方法。現在以以下例子講解。
一,載入類別。
Class clazz = Class.forName("java.lang.String"); //此句程式碼得到一個String類別的類別物件。參數填包名。
若透過URLClassLoader ,可載入本機或遠端的jar包,並且透過loadclass方法得到特定的類別物件。
二,實例化物件。
如果透過預設建構子來實例化對象,我們可用類別物件以下的方法得到一個對象,如
clazz..newInstance();下列程式碼達成:
Constructor> myConstructor = myClass.getConstructor(parameterTypes);//取得一個建構器物件。
其中parameterTypes 為 Class>... parameterTypes,例如 String.class,int.class等等。接著透過建構器物件得到實例化物件:
myConstructor.newInstance("xxx",123);建構器內填入特定的建構參數。
三,並呼叫方法。
Method mezod = clazz.getMethod(methodName, parameterTypes);可以得到方法類別的對象,然後我們可以透過mezod的invoke方法執行方法。
mezod.invoke(obj,"xxx",123);//第一個參數為此方法的發起對象,若填null則表示呼叫的是靜態static方法。
文章轉自CSDN.NET,如有版權問題,請聯絡刪除.
以上就是很簡單的JAVA反射教程的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!