接口类
public interface HouseAgent { void buy(); }实现类
public class Zhangsan implements HouseAgent { @Override public void buy() { System.out.println("我要买大House"); } }动态代理类
public class JdkProxy implements InvocationHandler { private HouseAgent traget; public Object getInstance(HouseAgent traget) { this.traget =traget; System.out.println("进入getInstance"); Class<?> clazz = traget.getClass(); return Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("你想要买什么样的房子啊?"); method.invoke(this.traget, args); System.out.println("房子找到了,有时间来看"); return null; } }测试类
public class HouseAgentTest { public static void main(String[] args) { HouseAgent houseAgent = (HouseAgent) new JdkProxy().getInstance(new Zhangsan()); houseAgent.buy(); } }