• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package javax.annotation;
2 
3 import java.lang.annotation.Documented;
4 import java.lang.annotation.ElementType;
5 import java.lang.annotation.Retention;
6 import java.lang.annotation.RetentionPolicy;
7 
8 import javax.annotation.meta.TypeQualifierDefault;
9 
10 /**
11  * This annotation can be applied to a package, class or method to indicate that
12  * the method parameters in that element are nullable by default unless there is:
13  * <ul>
14  * <li>An explicit nullness annotation
15  * <li>The method overrides a method in a superclass (in which case the
16  * annotation of the corresponding parameter in the superclass applies)
17  * <li> there is a default parameter annotation applied to a more tightly nested
18  * element.
19  * </ul>
20  * <p>This annotation implies the same "nullness" as no annotation. However, it is different
21  * than having no annotation, as it is inherited and it can override a ParametersAreNonnullByDefault
22  * annotation at an outer scope.
23  *
24  */
25 @Documented
26 @Nullable
27 @TypeQualifierDefault(ElementType.PARAMETER)
28 @Retention(RetentionPolicy.RUNTIME)
29 public @interface ParametersAreNullableByDefault {
30 }
31