public class Proxy extends Object implements Serializable
Proxy
提供了一组静态方法,通过这些静态方法用于创建动态代理类和实例,它还是由这些方法创建的所有动态代理类的超类。
Proxy类是专门完成代理的操作类,可以通过此类为一个或多个接口动态地生成实现类。
为某个接口创建代理Foo :
InvocationHandler handler = new MyInvocationHandler(...);
Class<?> proxyClass = Proxy.getProxyClass(Foo.class.getClassLoader(), Foo.class);
Foo f = (Foo) proxyClass.getConstructor(InvocationHandler.class).
newInstance(handler);
或更简单地:
Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),new Class<?>[] { Foo.class },handler);
属性
Modifier and Type | Field and Description |
---|---|
protected InvocationHandler | h 该代理实例的调用处理程序。 |
构造方法
Modifier | Constructor and Description |
---|---|
protected | Proxy(InvocationHandler h) 从一个子类(通常是一个动态代理类)构造一个新的 |
静态方法
Modifier and Type | Method and Description |
---|---|
static InvocationHandler | getInvocationHandler(Object proxy) 返回指定代理实例的调用处理程序。 |
static 类<?> | getProxyClass(ClassLoader loader, 类<?>... interfaces) 给出类加载器和接口数组的代理类的 |
static boolean | isProxyClass(类<?> cl) 如果且仅当使用 |
static Object | newProxyInstance(ClassLoader loader, 类<?>[] interfaces, InvocationHandler h) 返回指定接口的代理类的实例,该接口将方法调用分派给指定的调用处理程序。 |