Java 默认情况下,如何使@ParametersAreNonnull正常工作?

Java 默认情况下,如何使@ParametersAreNonnull正常工作?,java,maven,annotations,nullpointerexception,findbugs,Java,Maven,Annotations,Nullpointerexception,Findbugs,我曾多次尝试在maven项目中让package annotation@ParametersArenUnnullByDefault为我工作,但没有成功。 是否有人可以共享一个链接到一个最小的/示例maven项目,在该项目中进行设置(或者发布pom.xml和package-info.java以及demo类) 我说的是让findbugs处理器为我强制执行。如何应用 在您的包中创建一个文件package info.java,您希望在其中强制执行所需的行为 在该文件中,执行以下操作: /** * You

我曾多次尝试在maven项目中让package annotation@ParametersArenUnnullByDefault为我工作,但没有成功。 是否有人可以共享一个链接到一个最小的/示例maven项目,在该项目中进行设置(或者发布pom.xml和package-info.java以及demo类)

我说的是让findbugs处理器为我强制执行。

如何应用 在您的包中创建一个文件
package info.java
,您希望在其中强制执行所需的行为

在该文件中,执行以下操作:

/**
 * You should do it like this!
 */
@ParametersAreNonnullByDefault
package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;
默认情况下如何不应用
@参数
不要在Java源文件中执行以下操作:

/**
 * But you shouldn't do it this way!
 */
@ParametersAreNonnullByDefault
package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

public class Answer { ...
像这样声明注释是不明确的

笔记 直接在
Answer
类上应用注释是可以的

package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

/**
 * You can do it like this also.
 */
@ParametersAreNonnullByDefault
public class Answer { ...

同样的情况也适用于。

对于Android项目(例如,当使用诸如翻新等库时),这是对
app/build.gradle
的依赖(如@Saket所述):


Android用户,您需要添加jsr-305作为依赖项。Google为Findbugs提供了一份该文件的副本,可用于:
dependencies {
    implementation 'com.google.code.findbugs:jsr305:3.0.2'
    // ...
}