JDK中生成代理对象的API
代理类所在包:java.lang.reflect.Proxy
JDK实现代理只需要使用newProxyInstance方法,但是该方法需要接收三个参数,完整的写法是:
static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces,InvocationHandler h )
注意该方法是在Proxy类中是静态方法,且接收的三个参数依次为:
-
ClassLoader loader,:指定当前目标对象使用类加载器,获取加载器的方法是固定的 -
Class<?>[] interfaces,:目标对象实现的接口的类型,使用泛型方式确认类型 -
InvocationHandler h:事件处理,执行目标对象的方法时,会触发事件处理器的方法,会把当前执行目标对象的方法作为参数传入
Member.java实体类:
package com.dx.dynamicproxy; public class Member { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Member(int id, String name) { super(); this.id = id; this.name = name; } @Override public String toString() { return "Member [>; } }