java - @Nullable 和 SonarQube 'Conditionally executed blocks should be reachable' 警告

标签 java sonarqube nullable notnull

包有以下 package-info.java:

@ParametersAreNonnullByDefault
package foo;
import javax.annotation.ParametersAreNonnullByDefault;

类有以下方法:

private static String toIsoString(@Nullable Instant dateTime) {
  return dateTime == null ? null : dateTime.toString();
}

SonarQube(版本 6.2,SonarJava 4.14.0.11784)发出以下警告(鱿鱼:S2583):

enter image description here

我怎样才能让 SonarQube 相信代码实际上是正确的?

有趣的是,Idea 中的 SonarLint 插件 (3.0.0.2041) 不会生成相同的警告。

最佳答案

显然,这个问题是由于我们使用sonar-scanner而没有指定sonar.java.libraries引起的。由于它是多模块 Maven 项目,我们不清楚如何正确指定 sonar.java.libraries

来自 SonarSource 的 Nicolas Peru 建议我们应该使用 sonar maven 插件,而不是 sonar-scanner,因为该插件可以访问项目的构建类路径。的确,这为我们解决了这个问题。

关于java - @Nullable 和 SonarQube 'Conditionally executed blocks should be reachable' 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46836447/

相关文章:

java - 图像作为组件问题

java - SonarQube 重构此方法以降低其认知复杂性

javascript - Sonar 命名约定问题

hibernate - 我可以使嵌入的 Hibernate 实体不可为 null 吗?

c# - 类型 'string' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'T' 中的参数 'System.Nullable<T>'

java - 在 Java 中进行空检查的最优雅的方法是什么

java - Neo4j 和 java : What does this error "NULL is not a keyed collection" mean?

java - 获取 SQLite 单列结果列表的快速方法

java - 无法运行 logbacks TimeBasedRollingPolicy

SonarQube + Lombok 配置