# Package org.springframework.lang

Common annotations with language-level semantics: nullability as well as JDK API indications.

See: Description

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  NonNull | A common Spring annotation to declare that annotated elements cannot be `null`.
  NonNullApi | A common Spring annotation to declare that parameters and return values are to be considered as non-nullable by default for a given package.
  NonNullFields | A common Spring annotation to declare that fields are to be considered as non-nullable by default for a given package.
  Nullable | A common Spring annotation to declare that annotated elements can be `null` under some circumstance.
  UsesJava7 | Deprecated as of 5.0 since the framework is based on Java 8+ now
  UsesJava8 | Deprecated as of 5.0 since the framework is based on Java 8+ now
  UsesSunHttpServer | Deprecated as of 5.1, along with Spring's Sun HTTP Server support classes
  UsesSunMisc | Indicates that the annotated element uses an API from the `sun.misc` package.

## Package org.springframework.lang Description

Common annotations with language-level semantics: nullability as well as JDK API indications. These annotations sit at the lowest level of Spring's package dependency arrangement, even lower than `org.springframework.util`, with no Spring-specific concepts implied.

Used descriptively within the framework codebase. Can be validated by build-time tools (e.g. FindBugs or Animal Sniffer), alternative JVM languages (e.g. Kotlin), as well as IDEs (e.g. IntelliJ IDEA or Eclipse with corresponding project setup).