我有一个wsdl文件。我正在解析wsdl文件并将复杂类型作为键值对存储在映射中。 Key是复杂类型名称,value是包含该特定复杂类型下的元素的arraylist。 复杂类型可以具有另一种复杂类型作为元素。这个复杂的类型有一个更复杂的类型,依此类推。对于大型的wsdl文件,有许多复杂的类型。我正在迭代这个地图并从中提取元素。在迭代时,我以递归方式调用相同的函数,以便我可以获得复杂类型的所有元素。 在这样做的时候,我得到了StackOverflow异常。
请告诉我如何解决此stackoverflow异常。是否有任何其他方式或解决方案来实现上述期望的结果。
我还想知道将元素存储在arraylist中是否存在限制。
谢谢&问候, Gayatri Shinde
答案 0 :(得分:1)
arraylist是一个堆结构,因此限制通常很大。默认情况下,堆栈是减少的内存区域,您可以使用递归调用填充它。你可以重新设计算法不是recusrive而是迭代(保持跟踪列表或你正在使用的标签的其他堆结构,模拟重复)或者你可以增加你的应用程序的堆栈大小(我认为那里是一个选项,而不是作为java解释器可执行文件的参数)