62,614
社区成员
发帖
与我相关
我的任务
分享
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
public class ProxyTest {
public static void main(String[] args) {
System.out.println(AdvancedFoo.getInstance().f("b"));
}
}
class Foo {
public String f(String s) {
return s;
}
}
class AdvancedFoo {
private static Enhancer e;
static {
e = new Enhancer();
e.setSuperclass(Foo.class);
e.setCallbacks(new Callback[] { new MethodInterceptor() {
@Override
public Object intercept(Object o, Method m, Object[] args,
MethodProxy mp) throws Throwable {
args[0] = "a" + args[0];
return mp.invokeSuper(o, args) + "c";
}
}});
}
public synchronized static Foo getInstance() {
return (Foo) e.create();
}
}
import java.lang.reflect.Method;
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
public class ProxyTest {
public static void main(String[] args) {
System.out.println(AdvancedFoo.getInstance().f("b"));
}
}
class Foo {
public String f(String s) {
return s;
}
}
class AdvancedFoo {
public static Foo getInstance() {
Enhancer e = new Enhancer();
e.setSuperclass(Foo.class);
e.setCallbacks(new Callback[] { new MethodInterceptor() {
@Override
public Object intercept(Object o, Method m, Object[] args,
MethodProxy mp) throws Throwable {
args[0] = "a" + args[0];
return mp.invokeSuper(o, args) + "c";
}
}});
return (Foo) e.create();
}
}