为什么在使用codenameone结果处理器时出现内存不足错误?
我正在尝试使用结果处理器从HashMap中提取信息,如下所示 结果=Result.fromContentco; System.out.printlnco.toString; System.out.printlnresult.get//propertyType[text='Image'/…toString 当我运行时,我会得到这个输出。内存不足错误不会立即出现,而且实际上我没有运行其他代码为什么在使用codenameone结果处理器时出现内存不足错误?,codenameone,Codenameone,我正在尝试使用结果处理器从HashMap中提取信息,如下所示 结果=Result.fromContentco; System.out.printlnco.toString; System.out.printlnresult.get//propertyType[text='Image'/…toString 当我运行时,我会得到这个输出。内存不足错误不会立即出现,而且实际上我没有运行其他代码 { 图片:{ propertyName:Picture, 属性类型:图像, 属性值:/var/folder
{
图片:{
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调用。我我猜表达式语言中的某些东西在这里不起作用,但我不确定是什么。我不经常使用该功能,只是遍历地图。哦,好吧。结果似乎不太好。我也将遍历地图。