所谓反射模式,是指Java可以通过对象寻找类,或者通过字符串动态产生对象并调用中的方法。
基础类StudyDemoClass,提供了printName(String)函数。
package study;
public class StudyDemoClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("StudyDemoClass");
}
public void printName(String name) {
System.out.println(name);
}
}
反射类StudyDemo,通过完整路径名称“study.StudyDemoClass”取得类cc,然后动态生成该类的实例c(即类StudyDemoClass的对象)、和方法m(即类StudyDemoClass的方法printName),最后绑定调用该方法。
package study;
import java.lang.reflect.Method;
public class StudyDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//StudyDemoClass c = new StudyDemoClass();
//c.printName("chenth");
try {
Class cc = Class.forName("study.StudyDemoClass");
Object c = cc.newInstance();
Method m = cc.getDeclaredMethod("printName", String.class);
m.invoke(c, "chenth");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
反射机制常见于框架开发的源代码中,也可用于使用配置文件,灵活配置动态调用程序。