导入什么才能使用@SuppressFBWarnings?

2022-09-01 09:01:55

导入什么才能使用 SuppressFBWarnings?我通过帮助/安装新软件安装了findbugs插件 当我键入import edu.时,我无法执行ctrl空间来获取选项。

try {
  String t = null;
  @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value="NP_ALWAYS_NULL", 
    justification="I know what I'm doing")
  int sl = t.length();
  System.out.printf( "Length is %d", sl );
} catch (Throwable e) {
...
}

出现错误“edu 无法解析为类型”


答案 1

为了使用 FindBugs 注释,您需要在类路径上包含来自 FindBugs 发行版的注释.jarjsr305.jar。如果您确定只需要注释(而不是其他注释),则仅注释.jar就足够了。@SuppressFBWarnings

您可以在 FindBugs 发行版lib 文件夹中找到这两个 JAR。

如果您使用的是 Maven:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>annotations</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

如果您使用的是 Gradle:

dependencies {
    compileOnly 'com.google.code.findbugs:annotations:3.0.1'
    compileOnly 'com.google.code.findbugs:jsr305:3.0.1'
}

compileOnly是 Maven 称之为 scope 的 Gradle 风格。provided


SpotBugs (2018) 更新:

FindBugs已被SpotBugs取代。因此,如果您已经在使用 SpotBugs,迁移指南建议您改用以下依赖项:

请同时依赖 spotbugs-annotationsnet.jcip:jcip-annotations:1.0

专家:

<dependency>
    <groupId>net.jcip</groupId>
    <artifactId>jcip-annotations</artifactId>
    <version>1.0</version>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>com.github.spotbugs</groupId>
    <artifactId>spotbugs-annotations</artifactId>
    <version>3.1.3</version>
    <optional>true</optional>
</dependency>

等级:

dependencies {
    compileOnly 'net.jcip:jcip-annotations:1.0'
    compileOnly 'com.github.spotbugs:spotbugs-annotations:3.1.3'
}

如果也使用 ,则该依赖项与上述关系相同。jsr305


答案 2

推荐