java动态代理简单实例。

发布时间:2016-12-8 4:15:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java动态代理简单实例。",主要涉及到java动态代理简单实例。方面的内容,对于java动态代理简单实例。感兴趣的同学可以参考一下。

package mytest; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class RunProxy {     public static void main(String[] args) {         A a = new B();         A proxy = (A) Proxy.newProxyInstance(                   a.getClass().getClassLoader(),                   a.getClass().getInterfaces(),                   new ReadyInvocationHandler(a));         proxy.eat();         proxy.run();     } =============================================================  interface A {      public void eat();     public void  run();  } ==========================================================  class B implements A {     @Override     public void eat() {         // TODO Auto-generated method stub         System.out.println("B======eat");     }     @Override     public void run() {         // TODO Auto-generated method stub         System.out.println("B=====run");     }       } ==========================================================  class ReadyInvocationHandler implements InvocationHandler {     //真实类对象         private Object B = null;                  public ReadyInvocationHandler(Object realSubject) {               this.B = realSubject;           }  //该方法为自动调用。     @Override     public Object invoke(Object proxy, Method method, Object[] args)             throws Throwable {         // TODO Auto-generated method stub         Object result = null;         System.out.println(proxy.getClass().getSimpleName());         System.out.println("动态代理开始");      //利用反射调用真实类的方法。             result = method.invoke(this.B, args);             System.out.println("动态代理结束");         return result;     }    } 总结动态代理步骤:第一个写一个接口,写一个真实类实现接口,第三写动态代理类。 $Proxy0 动态代理开始 B======eat 动态代理结束 $Proxy0 动态代理开始 B=====run 动态代理结束

上一篇:MediaRecorder类介绍
下一篇:启动tomcat时startup.bat一闪而过

相关文章

相关评论