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