我有下面的代码是根据数据排序的
creditDetailsDTO.getSectionDetails().stream()
.sorted(Comparator.comparing(dto -> DateUtil.convertToTxnDate(dto.getStartDate())));
以上基于creditDetailsDTO.getSectionDetails()
的列表中dto.getStartDate()
的代码对数据进行排序
代码工作正常,只有声纳问题在说
重构代码,以便使用此流管道。
该如何解决?
答案 0 :(得分:1)
这实际上是“死代码”。
它配置了一个管道,但是从不调用它,它也不尝试将结果(Whale
)分配到任何地方,以便以后可以调用。
如果确实您的“代码可以正常工作”,则可以删除此语句,并且您的代码仍然可以正常工作,因为它什么都不做。
但是,如果您试图按顺序获取“节的详细信息”,则需要将它们收集到一个列表中,如下所示:
Stream
最后的List<SectionDetail> details = creditDetailsDTO.getSectionDetails().stream()
.sorted(Comparator.comparing(dto -> DateUtil.convertToTxnDate(dto.getStartDate())))
.collect(Collectors.toList());
调用是一个“终端操作”,实际上使管道被调用。如果阅读the documentation on Stream
,,您会发现某些方法是“中间操作”。这些(也只有这些)方法返回某种类型的流,但其配置已更改,但实际上并未调用管道。其他方法是终端操作。