HelloWorld.java 接口文件
public interface HelloWorld { public void sayHello();}
HelloWorldImpl.java 接口的一种实现
public class HelloWorldImpl implements HelloWorld { public void sayHello() { // TODO Auto-generated method stub System.out.println("Hello World"); }}
HelloWorldHandler.java 接口的代理文件
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class HelloWorldHandler implements InvocationHandler { private Object obj = null; public HelloWorldHandler(Object obj) { this.obj = obj; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub Object result = null; before(); result = method.invoke(obj, args); after(); return result; } public Object bind() { return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj .getClass().getInterfaces(), this); } public void before() { System.out.println("方法执行之前"); } public void after() { System.out.println("方法执行之后"); }}
测试
public static void main(String[] args) { HelloWorldHandler handler = new HelloWorldHandler(new HelloWorldImpl()); HelloWorld proxy = (HelloWorld) handler.bind(); proxy.sayHello(); }