[size=medium][color=darkblue]1.总共有4个类,1个接口类,1个实现接口的类,1个实现invocationHandler接口的类,1个测试类.[/color][/size]
package com.meiyoudao.invocationhandle;
public interface SayClass {
void say();
}
package com.meiyoudao.invocationhandle;
public class SayClassImpl implements SayClass {
public void say() {
System.out.println("**************hello***************");
}
}
package com.meiyoudao.invocationhandle;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class LogHandle implements InvocationHandler {
private Object target = null;
public LogHandle(Object obj) {
this.target = obj;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("Log**************");
Object o = method.invoke(target, args);
System.out.println("****************Log");
return o;
}
}
package com.meiyoudao.invocationhandle;
import java.lang.reflect.Proxy;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
SayClass say = new SayClassImpl();
LogHandle log = new LogHandle(say);
SayClass clz = (SayClass) Proxy.newProxyInstance(say.getClass()
.getClassLoader(), new Class[]{SayClass.class}, log);
clz.say();
}
}