org.eclipse.jdt.annotation

## Annotation Type NonNullByDefault

    @Documented
     @Retention(value=CLASS)
     @Target(value={PACKAGE,TYPE,METHOD,CONSTRUCTOR,FIELD,LOCAL_VARIABLE})
    public @interface NonNullByDefault

Applying this annotation to a declaration has the effect that type references, which are contained in the declaration, and for which a null annotation is otherwise lacking, should be considered as `@NonNull`.

Locations
  This annotation is permitted for these declarations: `PACKAGE`, `TYPE`, `METHOD`, `CONSTRUCTOR`, `FIELD`, `LOCAL_VARIABLE`.
Fine tuning
  The exact effect is further controlled by the attribute `value()`, specifying what kinds of locations within the given declaration will be affected. See `DefaultLocation` for the meaning of the available values.
Nested defaults
  If this annotation is applied to a declaration that is already affected by the same annotation at an enclosing scope, the inner annotation replaces the effect of the outer annotation for the scope of the inner declaration.
Canceling a default
  In particular, specifying an empty value (`{}`) for the `value()` attribute has the effect of canceling any null defaults that might be defined for any enclosing scope.

Note that for applying an annotation to a package, a file by the name `package-info.java` is used.

Note: Since org.eclipse.jdt.annotation 2.0.0, this annotation also applies to field and local variable declarations. For the old API, see `@NonNullByDefault` in 1.1.0.

Since:
  1.0

### Optional Element Summary

Optional Elements
`DefaultLocation[]` `value` Specifies the set of locations within the annotated declaration that should be affected by the nonnull default.

### Element Detail

#### value

    public abstract DefaultLocation[] value

Specifies the set of locations within the annotated declaration that should be affected by the nonnull default.

Returns:
  the locations, or an empty array to cancel any null defaults from enclosing scopes
Since:
  2.0

Default:
  {org.eclipse.jdt.annotation.DefaultLocation.PARAMETER, org.eclipse.jdt.annotation.DefaultLocation.RETURN_TYPE, org.eclipse.jdt.annotation.DefaultLocation.FIELD, org.eclipse.jdt.annotation.DefaultLocation.TYPE_BOUND, org.eclipse.jdt.annotation.DefaultLocation.TYPE_ARGUMENT}