null-safety について
Spring Boot 3とSpring Framework 6のプロジェクトで、null許容性を扱う開発スキルです。注釈の規約やnull許容の契約、JavaとKotlinの併用時の注意点を示し、Framework 7の既定動作を前提にしないよう案内します。
主な機能
- 01Springのnull許容性注釈の指針
- 02null許容の引数と戻り値の注釈
- 03リポジトリ戻り値契約の確認
- 04JavaとKotlinの注釈設定の整合
- 05検証と移行時の注意点
活用シーン
- 01Boot 3モジュールのnull許容性を確認
- 02サービスやリポジトリAPIのnull許容項目を注釈
- 03JavaとKotlinのnull設定を確認
- 04意図しない契約変更を防止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rrezartprebreza/ spring-boot-skills --skill null-safetyインストール後、Claude Code で/null-safetyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/bad-null-contract.javagood-package-info.java詳細
Null 安全性(Boot 3 / Framework 6)
プロジェクトでサポートされている null 許容モデルを使用してください。Spring Framework 6 では、一般に
org.springframework.lang.Nullable、@NonNull、およびパッケージレベルの @NonNullApi が使用されます。JSpecify は意図的に導入できますが、Boot 3 モジュールで Framework 7 の移行時のセマンティクスを前提にしないでください。
@NonNullApi
package com.example.orders;
import org.springframework.lang.NonNullApi;
本当に null になり得る戻り値とパラメーターには @Nullable を付けてください。リポジトリの戻り値の型を明示し、外部入力を境界で検証し、Java と Kotlin を併用する場合は、アノテーションに合った Kotlin コンパイラー設定を使用してください。プロジェクトで JSpecify を独自に標準化する場合は、モジュール境界で一貫して適用し、選択したチェッカーを文書化してください。
注意点
- エージェントが Framework 7 の JSpecify のデフォルトを前提にします。Boot 3 プロジェクトでは通常、Spring の従来のアノテーションを使用します。
- エージェントがパッケージアノテーションをインポートせずに
@NonNullApiを使用します。パッケージメタデータはコンパイルされ、チェックに含まれている必要があります。 - エージェントがすべての値に
@NonNullを付けます。パッケージのデフォルトを設定し、null 許容の例外にのみアノテーションを付けてください。 - エージェントがアノテーションを実行時の検証として扱います。入力の検証には Bean Validation または明示的なチェックを使用してください。
- エージェントが呼び出し元を更新せずにリポジトリの null 許容契約を変更します。
Optional、null 許容、および空のコレクションのセマンティクスを維持してください。 - エージェントが移行計画なしに JSpecify と Spring のアノテーションを混在させます。モジュール境界での方針を一つ選んでください。
コメント
Markdown 対応