java - 替代 FindBugs DefaultAnnotation for javax.annotation for fields and methods

标签 java findbugs

我目前正在使用

@DefaultAnnotation(NonNull.class)
package jobs;

import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
import edu.umd.cs.findbugs.annotations.NonNull;

但是注解@edu.umd.cs.findbugs.annotations.DefaultAnnotation 已弃用: http://findbugs.sourceforge.net/api/edu/umd/cs/findbugs/annotations/DefaultAnnotation.html

他们建议使用 javax.annotation.ParametersAreNonnullByDefault 但是,DefaultAnnotation 不仅针对参数,还针对字段和方法。

那么,默认情况下将字段和方法设置为 Nonnull 的 javax.annotation 替代方案是什么?

最佳答案

据我所知没有。想要同样的东西,我复制了 source for ParametersAreNonnullByDefault进入我自己的 FieldsAreNonnullByDefaultMethodsAreNonnullByDefault 并更改 @TypeQualifierDefault 值以匹配(FIELDMETHOD各自)。 FindBugs 完美地拾取了这些新注释。

这是 FieldsAreNonnullByDefault 的示例:

package com.sample;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import javax.annotation.meta.TypeQualifierDefault;

/**
 * This annotation can be applied to a package or class to indicate that the 
 * classes' fields in that element are nonnull by default unless there is
 * <ul>
 *   <li>an explicit nullness annotation
 *   <li>a default field annotation applied to a more tightly nested element.
 * </ul>
 */
@Documented
@Nonnull
@TypeQualifierDefault(ElementType.FIELD)  // <-- METHOD for return values
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldsAreNonnullByDefault {
}

关于java - 替代 FindBugs DefaultAnnotation for javax.annotation for fields and methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13414474/

相关文章:

java - 为什么没有抽象方法的情况下将类标记为抽象

java - 不同屏幕尺寸的 Android 资源文件

java - Spring批处理ItemReader对同一条记录执行多次

Java遍历优先级队列

java - 是否有一个未弃用的默认类级别注释,默认情况下指定非空返回值

maven - PMD/checkstyle/findbugs 的自定义规则集的推荐位置是什么?

java - 我如何在 JDK7 中使用目录 globbing

java - FindBugs:检测 Object.hashCode() 的调用

java - Sonar 管 5.6 : violations reported for an outer class by findbugs is not reported as a sonar violation

jpa - 有没有办法抑制 FindBugs 在静态编织生成的代码上生成警告?