一.Java反射拿到调用对象的方法
1.通过Class.forName(“包名+方法的类名”)拿到方法的对象;
如:Class<?> clazz = Class.forName("ReflectionTest");
如:String str = "test , reflection";
Class<?> clazz = str.getClass();
2.明确反射方法名称 ;
3.明确方法的参数类型,就可以拿到对象的方法。
如:Method method = clazz.getMethod("test",String.class,int.class);
二.接着就是invoke()调用方法了:
1.实例化对象,可以直接调用已创建的对象,也可以newInstance()一个。
2.确定具体方法的参数
如: Object obj1 = method.invoke(clazz.newInstance(),"xiaojun",23);
System.out.println("直接反射:"+obj1);
三.补充一些关于Java反射的知识:
Java反射的作用:在Java代码编译时,可以通过反射访问装载到JVM中类的内部信息。
如: Clazz.getName()获取类的完整名字
getPackage()获取此类所属的包
getSuperclass() 获取父类对应的Class对象
getFiled(String name) 获得类的指定成员变量
getMethods() 获得类的public类型的方法
getMethod(String name, Class[] args) 获取类的指定方法