为什么在使用codenameone结果处理器时出现内存不足错误?

为什么在使用codenameone结果处理器时出现内存不足错误?,codenameone,Codenameone,我正在尝试使用结果处理器从HashMap中提取信息,如下所示 结果=Result.fromContentco; System.out.printlnco.toString; System.out.printlnresult.get//propertyType[text='Image'/…toString 当我运行时,我会得到这个输出。内存不足错误不会立即出现,而且实际上我没有运行其他代码 { 图片:{ propertyName:Picture, 属性类型:图像, 属性值:/var/folder

我正在尝试使用结果处理器从HashMap中提取信息,如下所示 结果=Result.fromContentco; System.out.printlnco.toString; System.out.printlnresult.get//propertyType[text='Image'/…toString

当我运行时,我会得到这个输出。内存不足错误不会立即出现,而且实际上我没有运行其他代码

{
图片:{ propertyName:Picture, 属性类型:图像, 属性值:/var/folders/_j/xsgymcmd1lsc5zqtg65ctlsm0000gn/T/temp7922678673908500238s.png }, 文档类型:{ propertyName:DocumentType, 属性类型:Text, 财产价值:意外 } } {Picture={propertyName=Picture,propertyType=Image,propertyValue=/var/folders/_j/xsgymcmd1lsc5zqtg65ctlsm0000gn/T/temp7922678673908500238s.png},DocumentType={propertyName=DocumentType,propertyType=Text,propertyValue=contract}

java.lang.OutOfMemoryError:java堆空间 位于java.util.Arrays.copyOfArrays.java:2367 位于java.lang.AbstractStringBuilder.expandCapacityAbstractStringBuilder.java:130 位于java.lang.AbstractStringBuilder.ensureCapacityInternalAbstractStringBuilder.java:114 位于java.lang.AbstractStringBuilder.appendAbstractStringBuilder.java:587 位于java.lang.StringBuffer.appendStringBuffer.java:332 位于com.codename1.processing.ResultTokenizer.getPredicateResultTokenizer.java:124 位于com.codename1.processing.resultokenizer.nextResultTokenizer.java:137 在com.codename1.processing.ResultTokenizer.tokenizeResultTokenizer.java:77 在com.codename1.processing.Result.\u internalGetAsArrayResult.java:860 在com.codename1.processing.Result.\u internalGetResult.java:556 位于com.codename1.processing.Result.getResult.java:540 位于com.ixzdore.icomplain.ComplainManager.saveComplainObject ComplainManager.java:23 位于userclasses.StateMachine.onEditorSaveStateMachine.java:299 在生成的.StateMachineBase.processCommandStateMachineBase.java:228处 位于com.codename1.ui.util.UIBuilder.processCommandImplUIBuilder.java:1634 在com.codename1.ui.util.UIBuilder.access$100UIBuilder.java:85 在com.codename1.ui.util.UIBuilder$FormListener.actionPerformedUIBuilder.java:2757 在com.codename1.ui.util.EventDispatcher.FireActionEventDispatcher.java:345 位于com.codename1.ui.Form.actionCommandImplForm.java:1305 位于com.codename1.ui.Form.dispatchCommandForm.java:1271 在com.codename1.ui.SideMenuBar$CommandWrapper$showwater.runSideMenuBar.java:1381 在com.codename1.ui.Display.processSerialCallsDisplay.java:1075 在com.codename1.ui.Display.edtlopimplsplay.java:1019 位于com.codename1.ui.Display.mainEDTLoopDisplay.java:925 位于com.codename1.ui.runnablerrapper.runnablerrapper.java:120
在com.codename1.impl.CodenameOneThread.runCodenameOneThread.java:176中,内存不足通常表示递归。您的映射是否包含对自身或其子对象的引用


在这种情况下,代码将继续深入挖掘,并最终进入循环。我建议使用调试器断点停止并检查映射的子项,以查看它们是否无限递归。

我将映射替换为json字符串,并得到相同的结果。绝对没有递归。我误读了堆栈,这是由于get调用。我我猜表达式语言中的某些东西在这里不起作用,但我不确定是什么。我不经常使用该功能,只是遍历地图。哦,好吧。结果似乎不太好。我也将遍历地图。