null 安全

Kotlin の主要な機能の 1 つは、コンパイル時に null 値をきれいに処理する null 安全 (英語) です。これにより、Optional などのラッパーのコストを支払うことなく、null 値宣言と「値または値なし」セマンティクスの表現により、アプリケーションの安全性が向上します。(Kotlin では、null 許容値を持つ関数構成体を使用できます。Kotlinnull セーフティに関する包括的なガイド (英語) を参照してください。)

Java では、型システムで null 安全性を表現できませんが、Spring Data API には、org.springframework.lang パッケージで宣言された JSR-305 (英語) ツールフレンドリーアノテーションが付けられています。デフォルトでは、Kotlin で使用される Java API の型はプラットフォーム型 (英語) として認識され、そのため null チェックが緩和されます。JSR-305 アノテーションの Kotlin サポート (英語) および Spring nullability アノテーションは、Spring Data API 全体に対して Kotlin 開発者に null の安全性を提供し、コンパイル時に null 関連の課題を処理するという利点があります。

Spring Data リポジトリに null の安全性がどのように適用されるかについては、リポジトリメソッドの null 処理を参照してください。

-Xjsr305 コンパイラーフラグに次のオプションを追加することにより、JSR-305 チェックを構成できます。-Xjsr305={strict|warn|ignore}

Kotlin バージョン 1.1 + の場合、デフォルトの動作は -Xjsr305=warn と同じです。strict 値は、Spring Data API の null の安全性を考慮に入れる必要があります。Spring API から推論された Kotlin 型。ただし、Spring API の null 可能性宣言がマイナーリリース間でも進化し、将来さらに多くのチェックが追加される可能性があることを知って使用する必要があります。

ジェネリクス型の引数、可変引数、配列要素の NULL 可能性はまだサポートされていませんが、今後のリリースでサポートされる予定です。