1. 程式人生 > >非常easy的JAVA反射教程

非常easy的JAVA反射教程

type parameter dna art struct adc cto article new

原創文章,轉載請註明。


反射能夠動態載入類,實例化對象,調用方法。如今以下面樣例解說。

一。載入類。

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方法。

非常easy的JAVA反射教程