当前位置: 首页 > news >正文

谷歌网站推广优化百度网站怎么做的赚钱吗

谷歌网站推广优化,百度网站怎么做的赚钱吗,搭建漏洞网站,外加工网目录 异常代码片段 详细说明 解决方案 使用迭代器进行遍历 使用临时集合存储结果 异常代码片段 if (ObjectUtil.isNotEmpty(candidateUsers)) {candidateUsers candidateUsers.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());for (String …目录 异常代码片段 详细说明 解决方案 使用迭代器进行遍历 使用临时集合存储结果 异常代码片段 if (ObjectUtil.isNotEmpty(candidateUsers)) {candidateUsers candidateUsers.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());for (String candidateUser : candidateUsers) {if (ObjectUtil.isNotEmpty(candidateUser) candidateUser.contains(${)) {try {String expressionValue expressionService.getStrValue(extendHisprocinst.getProcessInstanceId(), candidateUser);candidateUsers.add(expressionValue);} catch (Exception e) {log.error(解析人员报错原因{}, ExceptionUtil.stacktraceToString(e));}}} } 这段代码中出现ConcurrentModificationException异常的原因是在遍历candidateUsers集合的同时对其进行了修改。 具体来说是在遍历过程中通过candidateUsers.add(expressionValue);向集合中添加元素这会导致ConcurrentModificationException异常。 详细说明 详细解释 1.集合的遍历机制 当你使用for-each循环遍历集合时实际上是在使用迭代器Iterator来遍历集合中的元素。 迭代器在遍历集合时会维护一个内部计数器以跟踪当前遍历的位置。 每次调用next()方法时迭代器会移动到下一个位置并返回当前位置的元素。 2.并发修改检测 Java集合框架中的许多集合类如ArrayList在遍历期间会检查集合是否被修改过。 这种检查是通过一个称为modCount的字段来实现的每当集合被修改时例如添加或删除元素modCount值就会增加。 迭代器有一个expectedModCount字段它在迭代器创建时被初始化为集合的modCount值。 在每次调用next()方法时迭代器会检查expectedModCount是否等于集合的当前modCount值。 如果expectedModCount与当前modCount不匹配说明集合在遍历过程中被修改过这时迭代器会抛出ConcurrentModificationException异常。 代码分析 在这段代码中首先使用了流操作过滤并去重candidateUsers集合然后遍历这个集合。在遍历过程中如果满足某个条件即candidateUser包含${会尝试从expressionService获取表达式的值并将其添加回candidateUsers集合中。这种做法违反了遍历过程中的并发修改规则因此抛出了ConcurrentModificationException异常。 解决方案 为了避免这个问题可以采用以下几种方法之一。 使用迭代器进行遍历 使用迭代器遍历集合并在外部循环中处理元素避免直接修改正在遍历的集合。 这种方法避免了直接修改正在遍历的集合而是使用迭代器来安全地访问集合中的元素。 if (ObjectUtil.isNotEmpty(candidateUsers)) {candidateUsers candidateUsers.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());IteratorString iterator candidateUsers.iterator();while (iterator.hasNext()) {String candidateUser iterator.next();if (ObjectUtil.isNotEmpty(candidateUser) candidateUser.contains(${)) {try {String expressionValue expressionService.getStrValue(extendHisprocinst.getProcessInstanceId(), candidateUser);candidateUsers.add(expressionValue);} catch (Exception e) {log.error(解析人员报错原因{}, ExceptionUtil.stacktraceToString(e));}}} } 使用临时集合存储结果 创建一个新的集合来存储处理后的结果而不是直接修改原始集合。从而避免了ConcurrentModificationException异常。 选择其中一种方法即可解决问题。如果需要保留原始集合的内容建议使用第二种方法使用临时集合存储结果。 if (ObjectUtil.isNotEmpty(candidateUsers)) {ListString tempCandidateUsers new ArrayList();candidateUsers candidateUsers.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());for (String candidateUser : candidateUsers) {if (ObjectUtil.isNotEmpty(candidateUser) candidateUser.contains(${)) {try {String expressionValue expressionService.getStrValue(extendHisprocinst.getProcessInstanceId(), candidateUser);tempCandidateUsers.add(expressionValue);} catch (Exception e) {log.error(解析人员报错原因{}, ExceptionUtil.stacktraceToString(e));}} else {tempCandidateUsers.add(candidateUser);}}candidateUsers tempCandidateUsers; } ​
http://www.hkea.cn/news/14440839/

相关文章:

  • 做外贸网站的好处深圳网架制作
  • 临清网站建设费用wordpress淘宝客免费版
  • 什么是小手机型网站百度一下官网网址
  • 免费建站个人网站产品详情页面设计
  • 全屏类网站建设公司入口网站app
  • 东莞设计网站公司WordPress博客定制化首页
  • 追波设计网站安卓集成wordpress
  • 国内自助建站网架公司办公室规章制度范本
  • 大型门户网站建设哪专业wordpress主题开发教程
  • 网站宣传用了最字门户网站的优点
  • 梧州网站建设哪家好天津企业网站建设一般多少钱
  • 贵州城市建设网站室内设计师工资
  • 北京 做网站 公司网亿(深圳)信息科技有限公司
  • 什么行业做网站蓝气球卡地亚手表官方网站
  • 吉安做网站公司海东营销网站建设
  • 台州企业建站程序浅谈博物馆网站建设的意义
  • 高端网站建设公司增长可以做文档赚钱的网站
  • wordpress地址和站点地址错wordpress 域名更改 页面链接
  • 网站链接的基本形式松江新城建设发展有限公司网站
  • 佛山新网站制作市场拓者设计室内设计官网首页
  • wordpress后台如何登录优化水平
  • 外贸产品网站建设wordpress做客户端
  • 专门做实习计算机项目的网站平台品牌全案设计包括什么
  • 爱看视频的网站asp网站 模板
  • 做名片制作网站有什么a963中华室内设计官网
  • 网站建设公司上海做网站公司排名建设小辣猫的网站
  • 珠海网站建设杰作科技知名品牌网站有哪些
  • 网站建设费开票收候开在哪个类别里网页编辑器快捷键
  • 网站如何做映射南京装修公司十大排名榜
  • 石家庄网站公司wordpress 设置404页面模板