@Data public class WiringDiagramVo { /** * 源端 */ private WiringDiagramDetail sourceEnd; /** * 近源层 */ private WiringDiagramDetail proximalLayer; /** * 共享层 */ private WiringDiagramDetail sharedLayer; /** * 分析层 */ private WiringDiagramDetail analysisLayer; /** * api层 */ private WiringDiagramDetail apiLayer; }对象如何给sourceEnd赋值,WiringDiagramDetail对象中的元素为@Data public class WiringDiagramDetail { /** * 系统名称 */ private String sysName; /** * 表名 */ private String tableName; }
时间: 2023-08-05 13:04:29 浏览: 80
您可以通过以下方式为 `sourceEnd` 赋值:
```java
WiringDiagramVo vo = new WiringDiagramVo();
WiringDiagramDetail detail = new WiringDiagramDetail();
detail.setSysName("系统名称");
detail.setTableName("表名");
vo.setSourceEnd(detail);
```
首先,创建一个 `WiringDiagramVo` 对象 `vo`,然后创建一个 `WiringDiagramDetail` 对象 `detail`。接着,使用 `setSysName` 方法为 `detail` 的 `sysName` 属性赋值为所需的系统名称,使用 `setTableName` 方法为 `detail` 的 `tableName` 属性赋值为所需的表名。最后,使用 `setSourceEnd` 方法将 `detail` 对象赋值给 `vo` 的 `sourceEnd` 属性。这样就完成了 `sourceEnd` 的赋值操作。
相关问题
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不添加长度
根据你提供的代码,进入到`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`条件的条件,并进一步找出问题所在。
/*根据sourceTableId查询数据*/ List<DlLineage> dlLineageList = getLineageListBySourceTableIds(null, null, Arrays.asList(451L)); /*源端数据处理*/ List<DlLineage> dlLineageListCopySource = new ArrayList<>(); Iterator<DlLineage> iterator = dlLineageList.iterator(); while (iterator.hasNext()) { /*获取源端的数据*/ if (iterator.next().getSourceLayer().equals(LayerTypeEnum.SOURCEEND.getCode())) { dlLineageListCopySource.add(iterator.next()); /*删除源端列表数据*/ dlLineageList.remove(iterator.next()); } } 将这段代码改编成dlLineageListCopySource 存放LayerTypeEnum.SOURCEEND.getCode())类型的数据,dlLineageList 只存放除了LayerTypeEnum.SOURCEEND.getCode())类型的数据
为了实现将 `dlLineageListCopySource` 存放 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,`dlLineageList` 只存放除了 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,可以对代码进行如下修改:
```java
List<DlLineage> dlLineageList = getLineageListBySourceTableIds(null, null, Arrays.asList(451L));
List<DlLineage> dlLineageListCopySource = new ArrayList<>();
Iterator<DlLineage> iterator = dlLineageList.iterator();
while (iterator.hasNext()) {
DlLineage dlLineage = iterator.next();
if (dlLineage.getSourceLayer().equals(LayerTypeEnum.SOURCEEND.getCode())) {
dlLineageListCopySource.add(dlLineage);
iterator.remove(); // 使用迭代器的 remove() 方法删除元素
}
}
```
这样修改后,`dlLineageListCopySource` 将只包含 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据,而 `dlLineageList` 将只包含除了 `LayerTypeEnum.SOURCEEND.getCode()` 类型的数据。注意在遍历时,只调用了一次 `iterator.next()` 方法,以避免重复获取元素。
阅读全文