code: protected static AVIMMessage parseTypedMessage(AVIMMessage message) {
      int messageType = getMessageType(message.getContent());
      if (messageType != 0) {
        Class<? extends AVIMTypedMessage> clazz = messageTypesRepository.get(messageType);
        if (clazz != null) {
          try {
            AVIMMessage typedMessage = clazz.newInstance();
            typedMessage.setConversationId(message.getConversationId());
            typedMessage.setFrom(message.getFrom());
            typedMessage.setDeliveredAt(message.getDeliveredAt());
            typedMessage.setTimestamp(message.getTimestamp());
            typedMessage.setContent(message.getContent());
            typedMessage.setMessageId(message.getMessageId());
            typedMessage.setMessageStatus(message.getMessageStatus());
            typedMessage.setMessageIOType(message.getMessageIOType());
            typedMessage.uniqueToken = message.uniqueToken;
            typedMessage.currentClient = message.currentClient;
            typedMessage.mentionAll = message.mentionAll;
            typedMessage.mentionList = message.mentionList;
            message = typedMessage;
          } catch (Exception e) {
          }
        }
      }
      return message;
    }
docs: 解析AVIMMessage对象的子类
  
  @param message
  @return