【问题标题】:How do I get @ParametersAreNonnullByDefault to work?如何让 @ParametersAreNonnullByDefault 工作?
【发布时间】:2011-07-27 20:00:09
【问题描述】:
我已经多次尝试让包注释 @ParametersAreNonnullByDefault 在 maven 项目中为我工作,但没有成功。
有人可以分享一个链接到一个最小/示例 maven 项目的设置(或发布 pom.xml 和 package-info.java 和演示类)吗?
我说的是让 findbugs 处理器为我强制执行它。
【问题讨论】:
标签:
java
maven
annotations
nullpointerexception
findbugs
【解决方案1】:
在您想要强制执行所需行为的包中创建一个文件package-info.java。
在该文件中,执行以下操作:
/**
* You should do it like this!
*/
@ParametersAreNonnullByDefault
package com.stackoverflow;
import javax.annotation.ParametersAreNonnullByDefault;
如何不申请@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 { ...
同样的事情也适用于@ParametersAreNullableByDefault。
【解决方案2】:
对于 Android 项目(例如使用 Retrofit 等库时),这是要放入 app/build.gradle 的依赖项(如 @Saket 所述):
dependencies {
implementation 'com.google.code.findbugs:jsr305:3.0.2'
// ...
}