java中的反射机制,可以根据配置文件提供的类名, 动态的加载一个类对象到程序中, 并使用, 可提高程序的可扩展性》 eg:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectSample{
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
Class c = Class.forName("T");
Object o = c.newInstance();
Method[] mArr = c.getMethods();
for (Method m:mArr){
if (m.getName().equals("mm")){
m.invoke(o);
}
if (m.getName().equals("bigThan")){
Class[] paraTypeArr = m.getParameterTypes();
for (Class cl:paraTypeArr){
System.out.println(cl.getName());
}
Class returnType = m.getReturnType();
System.out.println(returnType.getName());
}
}
}
}
class T{
static {
System.out.println("T loaded!");
}
public T(){
System.out.println("T Constructor");
}
public void mm(){
System.out.println("mm Method");
}
public boolean bigThan(int a, int b){
if (a<b)
return false;
return true;
}
}