How do I get @ParametersAreNonnullByDefault to work?

本秂侑毒 提交于 2019-12-18 03:07:05

问题


I've made several attempts at getting package annotation @ParametersAreNonnullByDefault to work for me in a maven project but with no success. Could someone share a link to a minimal/sample maven project where this is setup (or post the pom.xml and package-info.java and demo class)?

I'm talking about having findbugs processor enforce it for me.


回答1:


How to apply @ParametersAreNonnullByDefault

Create a file package-info.java in your package where you want to enforce the desired behavior.

In that file, do the following:

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

import javax.annotation.ParametersAreNonnullByDefault;

How not to apply @ParametersAreNonnullByDefault

Don't do the following in a Java source file:

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

import javax.annotation.ParametersAreNonnullByDefault;

public class Answer { ...

Declaring annotations like this is ambiguous.

Notes

It would be OK to apply the annotation directly on Answer class.

package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

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

The exact same things apply to @ParametersAreNullableByDefault also.




回答2:


For Android projects (for example when using libraries like Retrofit etc), this is the dependency to put in app/build.gradle (as mentioned by @Saket):

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


来源:https://stackoverflow.com/questions/5516157/how-do-i-get-parametersarenonnullbydefault-to-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!