从java流中删除sonar lint问题

从java流中删除sonar lint问题,java,Java,我有下面的代码,这是根据数据排序 creditDetailsDTO.getSectionDetails().stream() .sorted(Comparator.comparing(dto -> DateUtil.convertToTxnDate(dto.getStartDate()))); 以上代码根据dto.getStartDate() 代码运行良好,只有声纳问题表明 重构代码以便使用此流管道 如何解决???这实际上是“死代码” 它配置一个管道,但从

我有下面的代码,这是根据数据排序

creditDetailsDTO.getSectionDetails().stream()
                .sorted(Comparator.comparing(dto -> DateUtil.convertToTxnDate(dto.getStartDate())));
以上代码根据
dto.getStartDate()

代码运行良好,只有声纳问题表明

重构代码以便使用此流管道

如何解决???

这实际上是“死代码”

它配置一个管道,但从不调用它,也不尝试将结果(即
)分配到任何地方,以便以后可以调用它

如果您的“代码运行良好”,您可以删除此语句,您的代码仍然可以正常运行,因为它不起任何作用

但是,如果您试图按排序顺序获取“部分详细信息”,则需要将它们收集到一个列表中,如下所示:

List<SectionDetail> details = creditDetailsDTO.getSectionDetails().stream()
    .sorted(Comparator.comparing(dto -> DateUtil.convertToTxnDate(dto.getStartDate())))
    .collect(Collectors.toList());
List details=creditDetailsDTO.getSectionDetails().stream()
.sorted(Comparator.comparing(dto->DateUtil.convertToTxnDate(dto.getStartDate()))
.collect(Collectors.toList());

末尾的
collect()
调用是一个“终端操作”,它实际上导致调用管道。如果您阅读了本文,您将看到一些方法是“中间操作”。这些(并且只有这些)方法返回某种类型的流,其配置发生了更改,但实际上没有调用管道。其他方法是终端操作。

您的管道中没有终端操作。此流应该做什么(您希望从中得到什么结果)?
.sorted()
对流中的元素进行排序,而不是对从中进行流处理的基础集合进行排序。如果您想实际处理排序后的数据,则需要收集并将其分配给某个对象。