如何让 @ParametersAreNonnullByDefault 工作?

Posted

技术标签:

【中文标题】如何让 @ParametersAreNonnullByDefault 工作?【英文标题】:How do I get @ParametersAreNonnullByDefault to work? 【发布时间】:2011-07-27 20:00:09 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

如何申请@ParametersAreNonnullByDefault

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

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

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

import javax.annotation.ParametersAreNonnullByDefault;

如何申请@ParametersAreNonnullByDefault

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

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

import javax.annotation.ParametersAreNonnullByDefault;

public class Answer  ...

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

注意事项

直接在Answer类上应用注解即可。

package com.***;

import javax.annotation.ParametersAreNonnullByDefault;

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

同样的事情也适用于@ParametersAreNullableByDefault

【讨论】:

android 用户,您需要添加 jsr-305 作为依赖项。 Google 为 Findbugs 提供了一份副本,可以使用:mvnrepository.com/artifact/com.google.code.findbugs/jsr305【参考方案2】:

对于 Android 项目(例如使用 Retrofit 等库时),这是要放入 app/build.gradle 的依赖项(如 @Saket 所述):

dependencies 
    implementation 'com.google.code.findbugs:jsr305:3.0.2'
    // ...

【讨论】:

以上是关于如何让 @ParametersAreNonnullByDefault 工作?的主要内容,如果未能解决你的问题,请参考以下文章

Jfreechart柱状图如何让变成纯色

android中如何让文字环绕图片

如何让GridView 标题居中

请教如何让UIActivityIndicatorView永远居中

如何让ActionBar标题居中

EBS如何让从值集不显示