code: public static WxOutMsg handle(WxInMsg msg, WxHandler handler) {
          WxOutMsg out = null;
          switch (WxMsgType.valueOf(msg.getMsgType())) {
          case text:
              out = handler.text(msg);
              break;
          case image:
              out = handler.image(msg);
              break;
          case voice:
              out = handler.voice(msg);
              break;
          case video:
              out = handler.video(msg);
              break;
          case location:
              out = handler.location(msg);
              break;
          case link:
              out = handler.link(msg);
              break;
          case event:
              out = handleEvent(msg, handler);
              break;
          case shortvideo:
              out = handler.shortvideo(msg);
              break;
          default:
              log.infof("New MsyType=%s ? fallback to defaultMsg", msg.getMsgType());
              out = handler.defaultMsg(msg);
              break;
          }
          return out;
      }
docs: 根据不同的消息类型,调用WxHandler不同的方法