下面为以上方法的输出:

  message for test send!!
  ++++++++=============+++++++++
  proxy:class $Proxy0
  method:public abstract void MessageHandler.sendMessage(java.lang.String)
  ++++++++=============+++++++++
  Message sent:1
  message for test send!!
  ++++++++++++++++++++++++++++++++++
  SMS Message :message for test sent !
  ++++++++=============+++++++++
  proxy:class $Proxy0
  method:public abstract void MessageHandler.sendMessage(java.lang.String)
  ++++++++=============+++++++++
  Message sent:2
  SMS Message :message for test sent !

  以上例子中,通过调用Proxy.newProxyInstance方法创建动态代理对象,该方法需要传入一个类加载器、一组希望代理实现的接口列表、InvocationHandler 接口的一个具体实现。动态代理可以将所有调用重定向到调用处理器,通常我们会向该处理器传递一个时间对象的引用。invoke()方法中传递进来了代理对象,当你需要区分请求来源时这是非常有用的,例如你可以通过判断传入的方法名屏蔽掉某些方法的执行!动态代理机制并不是会很频繁使用的方法,它通常用来解决一些特定情况下的问题,因此不要盲目的为了使用而使用,要根据自己的实际需求来决定!