Java 代理说的白话一点就是,找个代替人帮你过滤东西,其实就是找个中间人,隔绝不合理请求
此时 需要记住几个东西 。1.接口,接口实例,实例代理
package xvy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class _proxy { public static void main(String []arg) { StarProxy s = new StarProxy(); person p = s.getproxy(); p.sing("雅俗共赏"); }}interface person{ String sing(String name); String dance(String name);}class Star implements person{ public String sing(String name){ System.out.println( "Stars sing "+name ); return " Sing Over "; } public String dance(String name) { System.out.println( "Stars dance "+name ); return " Dance Over "; }}class StarProxy { private Star aStar = new Star(); public person getproxy(){ return (person) Proxy.newProxyInstance( StarProxy.class.getClassLoader(), aStar.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if(method.getName().equals("sing")) { method.invoke(aStar,args); } else if(method.getName().equals("dance")) { method.invoke(aStar,args); } return null; } } ); }}
此时 需要注意的是 我们先找到对应的代理人,然后告诉他,我要和你代理的那个人说话,通过代理人反射任务。