非常easy的JAVA反射教程
原創文章,轉載請註明。
反射能夠動態載入類,實例化對象,調用方法。如今以下面樣例解說。
一。載入類。
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反射教程