字段和方法的javax.annotation的FindBugs DefaultAnnotation的替代方法 [英] alternative to FindBugs DefaultAnnotation for javax.annotation for fields and methods
问题描述
我目前正在使用
@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
however the annotation @edu.umd.cs.findbugs.annotations.DefaultAnnotation is deprecated: http://findbugs.sourceforge.net/api/edu/umd/cs/findbugs/annotations/DefaultAnnotation.html
他们建议使用javax.annotation.ParametersAreNonnullByDefault 但是,DefaultAnnotation不仅针对参数,而且还针对字段和方法.
They propose to use javax.annotation.ParametersAreNonnullByDefault However, DefaultAnnotation not only targets parameters, but also fields and methods.
那么,默认情况下将字段和方法设置为Nonnull的javax.annotation替代方法是什么?
So, what is the javax.annotation alternative for setting fields and methods to Nonnull by default?
推荐答案
据我所知没有.想要同一件事,我复制了ParametersAreNonnullByDefault 的> source转换为我自己的FieldsAreNonnullByDefault
和MethodsAreNonnullByDefault
,并更改了@TypeQualifierDefault
值以匹配(分别为FIELD
和METHOD
). FindBugs完美地拾取了这些新注释.
As far as I know there is none. Wanting the same thing, I copied the source for ParametersAreNonnullByDefault
into my own FieldsAreNonnullByDefault
and MethodsAreNonnullByDefault
and changed the @TypeQualifierDefault
values to match (FIELD
and METHOD
respective). FindBugs picks up these new annotations perfectly.
这是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 {
}
这篇关于字段和方法的javax.annotation的FindBugs DefaultAnnotation的替代方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!