Package org.jetbrains.annotations

## Annotation Type NotNull

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

  An element annotated with NotNull claims `null` value is forbidden to return (for methods), pass to (parameters) and hold (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 and element contract violations.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `Class<? extends Exception>` | `exception` |
    `String` | `value` |

- - ### Element Detail

    - #### value

          String value

      Returns:
        Custom exception message
      Default:
        ""

  - - #### exception

          Class<? extends Exception> exception

      Returns:
        Custom exception type that should be thrown when not-nullity contract is violated. The exception class should have a constructor with one String argument (message). By default, `IllegalArgumentException` is thrown on null method arguments and `IllegalStateException` — on null return value.
      Default:
        java.lang.Exception.class