import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class TestInvocationHandler {
public static void main(String[] args) {
XXX xxx = new XXX(new Foo());
Fo o = (Fo) Proxy.newProxyInstance(Foo.class.getClassLoader(), new Class[]{<span style="color:#FF0000;">Fo.class</span>}, xxx);
o.hehe();
}
}
class XXX implements InvocationHandler{
private Object o;
public XXX(Object o){
<span style="color:#FF0000;">this.o = o;</span>
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("BEFORE");
method.invoke(<span style="color:#FF0000;">o</span>, args);
System.out.println("AFTER");
return null;
}
}
interface Fo{
void hehe();
}
class Foo implements Fo{
public void hehe(){
System.out.println("hehe");
}
}
InvocationHandler
最新推荐文章于 2025-05-18 09:27:23 发布