public interface Marry {
public void marry();
}
class WeddingCompany implements Marry{
public WeddingCompany(Walidake walidake) {
this.walidake = walidake;
}
@Override
public void marry() {
System.out.println("婚礼筹备");
walidake.marry();
System.out.println("婚礼结束");
}
}
public class WeddingCompany implements InvocationHandler{
private Object object;
public WeddingCompany(Object object) {
this.object = object;
}
@SuppressWarnings("unchecked")
public <T> T getProxy(){
return (T)Proxy.newProxyInstance(
Thread.currentThread().getContextClassLoader(),
object.getClass().getInterfaces(),
this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
if ("marry".equals(method.getName())) {
System.out.println("婚礼筹备");
method.invoke(object, args);
System.out.println("婚礼结束");
}
return null;
}
}
网友评论