当前位置: 代码迷 >> 综合 >> java.lang.reflect反射之 类 Proxy
  详细解决方案

java.lang.reflect反射之 类 Proxy

热度:39   发布时间:2024-03-08 04:46:45.0
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)

从一个子类(通常是一个动态代理类)构造一个新的 Proxy实例,具有指定的调用处理程序的值。

静态方法

Modifier and Type Method and Description
static InvocationHandler getInvocationHandler(Object proxy)

返回指定代理实例的调用处理程序。

static 类<?> getProxyClass(ClassLoader loader, 类<?>... interfaces)

给出类加载器和接口数组的代理类的 java.lang.Class对象。

static boolean isProxyClass(类<?> cl)

如果且仅当使用 getProxyClass方法或 newProxyInstance方法将指定的类动态生成为代理类时,则返回true。

static Object newProxyInstance(ClassLoader loader, 类<?>[] interfaces, InvocationHandler h)

返回指定接口的代理类的实例,该接口将方法调用分派给指定的调用处理程序。