Package org.jetbrains.annotations

## Annotation Type Nullable

-     @Documented
      @Retention(CLASS)
      @Target({METHOD,FIELD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
      public @interface Nullable

  An element annotated with `Nullable` claims `null` value is perfectly valid to return (for methods), pass to (parameters) or hold in (local variables and fields). Apart from documentation purposes this annotation is intended to be used by static analysis tools to validate against probable runtime errors or element contract violations.
  By convention, this annotation applied only when the value should always be checked against `null` because the developer could do nothing to prevent null from happening. Otherwise, too eager `Nullable` usage could lead to too many false positives from static analysis tools.
  For example, `Map.get(Object key)` should not be annotated `Nullable` because someone may have put not-null value in the map by this key and is expecting to find this value there ever since.
  On the other hand, the `Reference.get()` should be annotated `Nullable` because it returns `null` if object got collected which can happen at any time completely unexpectedly.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `String` | `value` |

- - ### Element Detail

    - #### value

          String value

      Default:
        ""