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

 更新时间:2023年07月25日 08:40:16   作者:学就对了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异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 离线中文语音文字识别功能的实现代码

    Java 离线中文语音文字识别功能的实现代码

    这篇文章主要介绍了Java 离线中文语音文字识别,本次使用springboot +maven实现,官方demo为springboot+gradle,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Java 自定义Spring框架与Spring IoC相关接口分析

    Java 自定义Spring框架与Spring IoC相关接口分析

    Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发
    2021-10-10
  • Java实战项目 医院预约挂号系统

    Java实战项目 医院预约挂号系统

    本文是一个Java语言编写的实战项目,是一个医院预约挂号系统,主要用到了jdbc+jsp+mysql+ajax等技术,技术含量比较高,感兴趣的童鞋跟着小编往下看吧
    2021-09-09
  • 详细介绍Java关键字throw throws Throwable的用法与区别

    详细介绍Java关键字throw throws Throwable的用法与区别

    这篇文章主要介绍了java中throws与throw及Throwable的用法和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java注解的Retention和RetentionPolicy实例分析

    Java注解的Retention和RetentionPolicy实例分析

    这篇文章主要介绍了Java注解的Retention和RetentionPolicy,结合实例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以参考下
    2019-09-09
  • Java如何在Map中存放重复key

    Java如何在Map中存放重复key

    这篇文章主要介绍了Java如何在Map中存放重复key,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Java接口统一样式返回模板简介

    Java接口统一样式返回模板简介

    这篇文章主要介绍了Java接口统一样式返回模板简介,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Spring多线程通过@Scheduled实现定时任务

    Spring多线程通过@Scheduled实现定时任务

    这篇文章主要介绍了Spring多线程通过@Scheduled实现定时任务,@Scheduled 定时任务调度注解,是spring定时任务中最重要的,下文关于其具体介绍,需要的小伙伴可以参考一下
    2022-05-05
  • SpringBoot 如何自定义项目启动信息打印

    SpringBoot 如何自定义项目启动信息打印

    这篇文章主要介绍了SpringBoot 如何自定义项目启动信息打印方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java调用C++动态库超详细步骤讲解(附源码)

    Java调用C++动态库超详细步骤讲解(附源码)

    C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,这篇文章主要介绍了Java调用C++动态库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04

最新评论