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;
    }
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 ; }
根据不同的消息类型,调用WxHandler不同的方法