一、Method类 getName() getReturnType() getParameterTypes() getModifers(); invoke()来调用
二、Field类 getName() getType() getModifers() get(classInstance)获得实例的字段值 set (classInstance,value)设置值
三、Class获取的三种方式 Classname.class classInstance.getClass() Class.forName(className)->如果没加载就会抛出异常
四、Class类,getSuperclass() getInterfaces() 获取接口的父类要使用getInterfaces(),使用getSuperclass()返回null. isAssignableFrom(class)判断参数类是否能转化为调用对象所属的类
五、在运行期间动态创建一个接口的实例,就叫动态代理。使用Proxy创建代理对象,然后将接口方法传给 InvocationHandler(调用句柄)完成
具体步骤 先生成一个调用句柄使用InvocationHander的new 方法生成,然后Proxy.newInstance()并强制转化为相应的接口类型;newInstance(classname.classLoader,class[]{classname},InvocationHandler)