无法在 javax.notation 中找到@Nullable。 *

我想使用 @Nullable注释来消除 NullPointerExceptions。 我在网上找到了一些教程,我注意到这个注释来自于 javax.annotation.Nullable包; 但是当我导入它时会产生一个编译错误: 找不到符号

160984 次浏览

您需要包含一个 jar,该类存在于其中。您可以找到它 给你

如果使用 Maven,可以添加以下依赖项声明:

<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>

以及格拉德尔:

dependencies {
testImplementation 'com.google.code.findbugs:jsr305:3.0.2'
}

艺术品已经从 net.sourceforge.findbugs移动到

<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.0</version>
</dependency>

如果你正在使用 Gradle,你可以像下面这样包含依赖关系:

repositories {
mavenCentral()
}


dependencies {
compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.0'
}

如果有人在编译 Android 项目时遇到这种情况,那么在 android.support.annotation.Nullable中有一个替代的 Nullable 实现。因此,请注意您在 import中引用的包。

我使用的是番石榴,它的注释包括:

(等级代码)

compile 'com.google.guava:guava:23.4-jre'

如果有人在外部构建 IntelliJ IDEA 中创建的 Maven 项目时遇到这个问题,我使用以下依赖关系而不是答案:

<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>15.0</version>
</dependency>

使用这个将允许该项目建立在 IntelliJIDEA 之上,并自己使用 Maven。

你可以找到它 给你

对于 Android 项目,您可以通过修改 project/module gradle 文件(build.gradle)来修复这个错误,如下所示:

dependencies { implementation 'com.android.support:support-annotations:24.2.0' }

详情请参阅 给你

您可以通过在 gradle.build 中添加以下代码行来添加最新版本。

implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'

JSR-305 是扩展规范的“ Java 规范请求”。@Nullable等是其中的一部分; 然而,它似乎是“休眠”(或冻结)以来(看这个 SO 问题)。因此,要使用这些注释,必须自己添加库。

FindBugs 被重命名为 斑点虫,目前正在使用该名称进行开发。

对于 maven 来说,这是 目前 仅注释依赖项(其他集成 给你) :

<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>4.2.0</version>
</dependency>

如果您希望使用完整的插件,请参考 SpotBugs 的文档。

对于梯度构建,我使用 compile('com.google.code.findbugs:jsr305:3.0.2')。 在测试的情况下可以使用 testCompile('com.google.code.findbugs:jsr305:3.0.2')