动态代理
public class Actor implements Agency{
public void basicAct(float money) {
System.out.println("基本动作---》" + money);
}
public void dangerAct(float money) {
System.out.println("危险动作---》" + money);
}
}
public interface Agency {
public void basicAct(float money);
public void dangerAct(float money);
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Cast {
public static void main(String[] args) {
Actor actor = new Actor();
Agency agency = (Agency) Proxy.newProxyInstance(actor.getClass().getClassLoader(), actor.getClass().getInterfaces(), new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
float money = (float) args[0];
if ("basicAct".equals(method.getName())) {
if (money > 10000) {
proxy = method.invoke(actor, money / 2);
}
}
if ("dangerAct".equals(method.getName())) {
if (money > 40000) {
proxy = method.invoke(actor, money / 2);
}
}
return proxy;
}
});
agency.basicAct(20000);
agency.dangerAct(60000);
}
}
Java动态代理实例解析
168万+

被折叠的 条评论
为什么被折叠?



