动态代理中一个类或者一个接口都可以被视为被代理的对象,接口或者类的实现者都可以被视为代理的对象
public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException
loader: 一个ClassLoader对象,定义了由哪个ClassLoader对象来对生成的代理对象进行加载
interfaces: 一个Interface对象的数组,表示的是我将要给我需要代理的对象提供一组什么接口,如果我提供了一组接口给它,这样我就能调用这组接口中的方法了
h: 一个InvocationHandler对象,表示的是当我这个动态代理对象在调用方法的时候,会关联到哪一个InvocationHandler对象上,也可以是实现InvocationHandle接口的类
执行代理对象的所实现的接口中的任何方法时都将先经过匿名内部类中的method.invoke()方法中对方法参数所进行的修改操作也是动态代理中的主要的部分(利用反射动态的来反射方法,这就是动态代理和静态代理的区别)
java的jdk动态代理
最新推荐文章于 2023-04-03 09:09:20 发布