步骤1:
获取到当前线程的类加载器
ClassLoader classLoader= Thread.currentThread().getContextClassLoader();
步骤2:
用类加载器获取的Class对象
Class clazz= classLoader.loadClass("com.wxw.test.blockqueue.RefTest");
步骤三:
使用Class对象获取想要指向的目标私有方法
m是方法名,null指没有参数
Method method= clazz.getDeclaredMethod("m",null);
步骤四:
生成目标对象的实例,这里使用的是默认的构造方法,也可以使用getDeclaredConstructor()方法,获取任意的构造器生成实例
RefTest refTest=(RefTest) clazz.newInstance();
步骤五:
设置允许访问私有方法
method.setAccessible(true);
步骤六:
使用实例调用方法
method.invoke(refTest,null);