【问题标题】: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】:

    如何申请@ParametersAreNonnullByDefault

    在您想要强制执行所需行为的包中创建一个文件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'
        // ...
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 2011-04-07
      • 2011-03-08
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多