我正在从事一个项目(Java 17),其中有一个对象列表,它有两个属性,actionId(字符串)和right(布尔值).我正在try 获取right=true的对象的actionId,并将结果存储为字符串列表.

这是我的代码:

 List<String> usserValidActionsArray = userActionGatewayDTO.stream().filter(UserActionGatewayDTO::getRight)
      .map(UserActionGatewayDTO::getActionId).toList();

我的代码工作正常,但声纳说:

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

有人能建议我如何改进代码以使其符合要求吗?

推荐答案

我猜那个声纳不知道水流.toList()(在Java 16中引入),并认为这是一个非终端操作.这似乎是bug SONAR-3746(另请参见Stream#toList (JDK 16) is not recognized as terminal operator).该问题应在Sonarint 7.2中解决.

我想,这意味着您需要SonarQube 9或更高版本,因为SonarQube 9.0是宣布支持Java 16的第一个版本,SonarQube 9.1提到为Java 16添加新规则.然而,我不太熟悉Sonarint和SonarQube更新是如何以这种方式交互的.

作为一种解决方法,您可以将toList()替换为collect(Collectors.toList()).

Java相关问答推荐

在FML中删除关键帧动画

Java:根据4象限中添加的行数均匀分布行的公式

当我用OkHttpClient重写shouldInterceptRequest来发布数据时,Android WebView正在以纯HTML加载URL内容

在springboot 3中,当我调用api endpoint时,会出现404

使用Spring Boot3.2和虚拟线程的并行服务调用

为什么S的文档中说常量方法句柄不能在类的常量池中表示?

基于接口的投影、原生查询和枚举

Java中将文本拆分为数字或十进制数字和字符串

如何集成语义发布和BitBucket(Java项目)

在VS代码中,如何启用Java Main函数的&Q;Run|DEBUG&Q;代码?

二进制数据的未知编码/序列化

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

有没有办法在o(log(N))中以系统的方式将数组中的小块元素复制和移动到新增长的数组中的左侧?

Win32函数的JNA绑定DwmGetColorizationColor返回E_INVALIDARG错误

如何在Maven Central上部署?

无法在IntStream上应用Collectors.groupingBy

rest api服务 spring 启动中出现IllegalFormatConversionException

如何在MPAndroidChart中的条形图上正确添加标签

spring 数据Elastic search 与 spring 启动数据Elastic search 之间的区别是什么?

如何在Java中正确实现填字游戏求解器