Null Safety
One of Kotlin’s key features is null safety, which cleanly deals with null
values at compile time.
This makes applications safer through nullability declarations and the expression of “value or no value” semantics without paying the cost of wrappers, such as Optional
.
(Kotlin allows using functional constructs with nullable values. See this comprehensive guide to Kotlin null safety.)
Although Java does not let you express null safety in its type system, Spring Data API is annotated with JSR-305 tooling friendly annotations declared in the org.springframework.lang
package.
By default, types from Java APIs used in Kotlin are recognized as platform types, for which null checks are relaxed.
Kotlin support for JSR-305 annotations and Spring nullability annotations provide null safety for the whole Spring Data API to Kotlin developers, with the advantage of dealing with null
related issues at compile time.
See Null Handling of Repository Methods how null safety applies to Spring Data Repositories.
You can configure JSR-305 checks by adding the For Kotlin versions 1.1+, the default behavior is the same as |
Generic type arguments, varargs, and array elements nullability are not supported yet, but should be in an upcoming release. |