java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java.lang.IllegalStateException异常

java.lang.IllegalStateException异常原因和解决办法

作者:学就对了183

这篇文章主要给大家介绍了关于java.lang.IllegalStateException异常原因和解决办法,IllegalStateException是Java标准库中的一个异常类,通常表示在不合适或无效的情况下执行了某个方法或操作,需要的朋友可以参考下

1、出现该异常场景

Iterator.remove() 迭代删除 引发

2、问题定位分析

1. Iterator.remove() 迭代删除 引发

重复 remove 导致出现该异常

场景示例

@Test
    public void illegalStateExceptionTest (){
        ArrayList<String> strs = new ArrayList<>();
        strs.add("1,2");
        strs.add("3,4,5");
        strs.add("6,7,8,9,10");
        Iterator<String> itr = strs.iterator();
        while (itr.hasNext()){
            String str = itr.next();
            String[] split = str.split(",");
            for (String s : split) {
                if (s.equals("4") || s.equals("5")){
                    itr.remove(); // 存在循环体,重复remove 导致异常
                    //break;
                }
            }
        }
    }

问题分析

    需要使用next方法迭代出集合中的元素 ,然后才能调用remove方法,
    否则集合可能会因为对同一个Iterator remove了多次而抛出java .lang.IllegalStateException异常。
    解决:可在循环体中 remove 后跳出循环 使用 break

总结

到此这篇关于java.lang.IllegalStateException异常原因和解决办法的文章就介绍到这了,更多相关java.lang.IllegalStateException异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文