反射一般有三个步骤:
1,装载字节码
2,查找方法
3,调用方法
下面以实际代码为例:
Dialog.java文件,Dialog是一个要被反射调用方法的类:
public class Dialog {
public void showDialog(String msg) {
System.out.println("对话框提示:" + msg);
}
}
ReflectDemo.java文件,将要通过反射方式调用Dialog类中的方法
import java.lang.reflect.Method;
/**
*
* 反射demo
*
* @author lqr
*
*/
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 1,装载字节码
Class<?> clazz = ReflectDemo.class.getClassLoader().loadClass("Dialog");
// 2,查找方法
Method method = clazz.getDeclaredMethod("showDialog", String.class);
// 3,调用方法
method.invoke(clazz.newInstance(), "利用反射调用Dialog中的showDialog方法");
}
}
打印结果:
对话框提示:利用反射调用Dialog中的showDialog方法