首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConcurrentModification异常

ConcurrentModification异常
EN

Stack Overflow用户
提问于 2014-01-07 07:59:15
回答 1查看 344关注 0票数 1

我在瓦丁框架内工作。我有一个绝对布局,我在布局中添加了一些组件,现在我正在迭代绝对布局,以获得绝对布局中的所有组件,同时从相同的绝对布局中删除一个或多个组件。但它给了我并发修改的例外。帮我避免这个例外。要求是在迭代相同布局时从绝对布局中删除组件。

生成异常的代码:

代码语言:javascript
复制
Iterator<?> iterate = absoluteLayout.getComponentIterator();
    while (iterate.hasNext()) 
    {
        Component c = (Component) iterate.next();
        if(c instanceof Button)
        {
            Button button = (Button) c;
            if(button.getCaption().equals(""))
            {
                Long id = (Long) button.getData();
                if(id == subSystemId)
                {
                    flag = true;
                    absoluteLayout.removeComponent(button);
                    absoluteLayout.removeComponent(tempLabel);
                    absoluteLayout.removeComponent(tempOptionGroup);

                    System.out.println("Waooo!! Components has been removed fro absolute layout!!");
                }
            }
        }
        else if(c instanceof Label)
        {
            tempLabel = (Label) c;
        }
        else if(c instanceof OptionGroup)
        {
            tempOptionGroup = (OptionGroup) c;
        }
    }

例外是:

代码语言:javascript
复制
java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:394)
at java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:405)
at com.medmax.Dashboard.cchpi.ROSComponent.removeRosSubSystemLogic(ROSComponent.java:401)

.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-07 08:03:48

在同一个循环中迭代并从absoluteLayout中删除。相反,尝试在tempLabel循环之外声明tempLabeltempOptionGroupbutton等变量。

它应该能解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20966623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档