功能:根据XML序列化出的对象对传入的字节数组进行解析
步骤:
1.传入对应的命令,然后根据命令解析规则,进行解析
2.因为命令中带有参数,然后参数中又包括子参数
所以当对参数进行解析(解析方法名称ParseData),
先判断当前参数是否包括子参数,如果包括则先对子参数进行解析(即递归调用ParseData方法),
如果不包括子参数,则直接对当前参数进行解析。
问题:
1.当使用测试程序,传入一条命令的字节数组时,解析正常。没有报异常
2.当把代码应用到实际场景(即放到通讯软件中使用时),对于出错的那条指令,前面的各参数解析都正常,但是当解析到一个特定位置(数组下标986)时,递归返回的层数差了一层,比如说 我从递归开始调用,一共递归了4层,那么当进行下次调用时,应该是递归回最外层。但是实际情况是只返回了第二层,并没有冒泡到最外层。 不知道这样的原因是什么?请解答
PS:
我使用测试程序调用时,是可以返回到最外层的。当然这个最外层只是相对来说的,把他理解成正确的那个层就好。
全是文字叙述啊,没看懂,给点代码啊。不过我建议你把你在放到软件使用的参数放在测试程序调试一下,如果还是不行,肯定通讯软件的代码和测试代码不同了,逻辑是这样的
检查变量和参数的使用,贴上关键代码。
递归这东西就是考验思路的,我想贴出来用处也不大