List<DlLineage> dlLineageListCopySource = new ArrayList<>(); /*非源端数据*/ Iterator<DlLineage> iterator = dlLineageList.iterator(); /*源端数据处理*/ while (iterator.hasNext()) { /*获取源端的数据*/ DlLineage dlLineage = iterator.next(); if (Optional.ofNullable(dlLineage.getSourceLayer()).equals(LayerTypeEnum.SOURCEEND.getCode())) { dlLineageListCopySource.add(dlLineage); /*删除源端列表数据*/ iterator.remove(); } } 为什么进入到 if (Optional.ofNullable(dlLineage.getSourceLayer()).equals(LayerTypeEnum.SOURCEEND.getCode())) 方法中,dlLineageListCopySource该list不添加长度
时间: 2024-04-21 17:24:46 浏览: 53
浅谈java Iterator.remove()方法的用法(详解)
根据你提供的代码,进入到`if (Optional.ofNullable(dlLineage.getSourceLayer()).equals(LayerTypeEnum.SOURCEEND.getCode()))`方法中表示`dlLineage`对象的`sourceLayer`属性值等于`LayerTypeEnum.SOURCEEND.getCode()`。
可能的原因是`dlLineage`对象的`sourceLayer`属性值为null或者不等于`LayerTypeEnum.SOURCEEND.getCode()`,导致`if`条件不成立,所以`dlLineageListCopySource`列表没有添加任何数据。
你可以通过在进入`if`条件之前,打印或调试`dlLineage.getSourceLayer()`的值,来确认该属性的实际值。如果为null,可以使用`System.out.println(dlLineage.getSourceLayer())`来进行打印。
另外,你也可以使用断点调试的方式来检查代码的执行流程,以确定是否满足进入`if`条件的条件,并进一步找出问题所在。
阅读全文