null 安全

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

Spring Framework 7 および Spring Data 4 以降、Spring Data では null 許容性アノテーションに JSpecify (英語) を使用しています。以前の JSR-305 (英語) ベースの org.springframework.lang アノテーションは非推奨となり、使用すべきではありません。最新の推奨方法については、リポジトリメソッドの null 処理を参照してください。

Java の型システムでは null 安全性を明示的に表現することはできませんが、Spring Data API には JSpecify アノテーションが付与されています。デフォルトでは、Kotlin で使用される Java API の型はプラットフォーム型 (英語) として認識され、null チェックが緩和されます。JSpecify アノテーションは、Kotlin 開発者に対して Spring Data API 全体の null 安全性を提供するとともに、コンパイル時に null 関連の課題を処理できるという利点があります。

Spring Data リポジトリにおける null 安全性の適用方法の詳細については、リポジトリメソッドの null 処理を参照してください。

汎用型引数、可変長引数、配列要素の null 許容性は現時点ではサポートされていませんが、今後のリリースでサポートされる予定です。