如何让 @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 工作?的主要内容,如果未能解决你的问题,请参考以下文章