实现内容
用反射的方式,调用class1类中的方法class1method(),方法输出class1字符串
效果展示
实现代码
class1
package reflect.demo;
/**
* @program: Demo1
* @description: class1
* @create: 2021-07-13 14:29
*/
public class class1 {
public void class1method(){
System.out.println("class1");
}
}
test
package reflect.demo;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* @program: Demo1
* @description: 测试类
* @create: 2021-07-13 09:56
*/
public class test {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
// 包名+类名
Class classzz = Class.forName("reflect.demo.class1");
// 获取构造器对象
Constructor constructor = classzz.getConstructor();
// 利用构造器对象创建一个对象
Object o = constructor.newInstance();
// 传递需要执行的方法
Method method = classzz.getMethod("class1method");
// 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class);
// 如果调用的方法有参数 invoke(o,param1,param2,param3,...)
method.invoke(o);
}
}