首先要有一个接口
java
public interface SayHello { public void sayHello(); }
其次要有一个接口的实现类
ide
public class SayHelloImp implements SayHello { @Override public void sayHello() { System.out.println("hello world!"); } }
要有一个代理类
代理类主要注意两点一个是要实现invocationHandler该接口,其次就是对Proxy.newInstance();方法的调用
this
public class MyProxy implements InvocationHandler { private Object obj; private void before() { System.out.println("before"); } private MyProxy(Object ob) { obj = ob; } private void after() { System.out.println("after"); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object reObject; before(); reObject = method.invoke(this.obj, args); after(); return reObject; } public static Object getInstance(Object ob) { return Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), ob .getClass().getInterfaces(), new MyProxy(ob)); } }
最后是main方法
spa
public static void main(String[] args) { SayHello hello = (SayHello) MyProxy.getInstance(new SayHelloImp()); hello.sayHello(); }