如何使用 Java 的反射?

91 阅读1分钟

一.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) 获取类的指定方法