如何让@ParametersAreNonnullByDefault工作?

sim*_*ico 19 java annotations findbugs nullpointerexception maven

我已经多次尝试获取包注释@ParametersAreNonnullByDefault在maven项目中为我工作,但没有成功.有人可以共享一个链接到最小/样本maven项目的设置(或发布pom.xml和package-info.java和演示类)?

我正在谈论让findbugs处理器为我强制执行它.

Koh*_*ert 26

如何申请 @ParametersAreNonnullByDefault

package-info.java在包中创建要强制执行所需行为的文件.

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

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

import javax.annotation.ParametersAreNonnullByDefault;
Run Code Online (Sandbox Code Playgroud)

怎么申请@ParametersAreNonnullByDefault

不要在Java源文件中执行以下操作:

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

import javax.annotation.ParametersAreNonnullByDefault;

public class Answer { ...
Run Code Online (Sandbox Code Playgroud)

声明这样的注释是模棱两可的.

笔记

可以直接在Answer类上应用注释.

package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

/**
 * You can do it like this also.
 */
@ParametersAreNonnullByDefault
public class Answer { ...
Run Code Online (Sandbox Code Playgroud)

完全相同的事情@ParametersAreNullableByDefault也适用.

  • Android用户,您需要添加jsr-305作为依赖项.Google为Findbugs托管了一份可以使用的副本:https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 (3认同)