mcpField
N
null-safety

null-safety

github.com/rrezartprebreza开发32851 次安装6 天前更新
代码仓库

关于 null-safety

面向 Spring Boot 3 和 Spring Framework 6 项目的空值处理开发技能,说明注解约定、可空契约及 Java 与 Kotlin 混用注意事项,并提醒勿套用 Framework 7 默认规则。

主要功能

  1. 01Spring 空值注解使用指导
  2. 02可空参数与结果的标注建议
  3. 03检查仓库返回类型契约
  4. 04协调 Java 与 Kotlin 注解设置
  5. 05涵盖校验和迁移注意事项

适用场景

  1. 01审查 Boot 3 模块的空值处理
  2. 02标注服务或仓库 API 的可空项
  3. 03检查 Java 与 Kotlin 空值设置
  4. 04避免意外更改契约

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rrezartprebreza/spring-boot-skills --skill null-safety

安装后在 Claude Code 中输入/null-safety确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
examples/
bad-null-contract.java
good-package-info.java

详细介绍

空值安全(Boot 3 / Framework 6)

使用项目支持的空值模型。Spring Framework 6 通常使用 org.springframework.lang.Nullable、@NonNull 和包级别的 @NonNullApi。可以有意引入 JSpecify,但不要在 Boot 3 模块中假设 Framework 7 的迁移语义。

@NonNullApi
package com.example.orders;

import org.springframework.lang.NonNullApi;

对确实可能为空的结果和参数添加 @Nullable。明确声明仓库返回类型,在边界处验证外部输入,并在混用 Java 和 Kotlin 时使用与这些注解相匹配的 Kotlin 编译器设置。如果项目独立采用 JSpecify 标准,则应在模块边界处保持一致,并记录所选用的检查器。

注意事项

  • Agent 假设 Framework 7 默认使用 JSpecify——Boot 3 项目通常使用 Spring 的旧版注解。
  • Agent 使用 @NonNullApi,却没有导入包注解——包元数据必须能够编译,并纳入版本控制。
  • Agent 将每个值都标记为 @NonNull——应先设定包级默认值,只为可能为空的例外添加注解。
  • Agent 将注解当作运行时验证——输入验证应使用 Bean Validation 或显式检查。
  • Agent 更改仓库的可空契约,却没有更新调用方——保留 Optional、可空值和空集合的语义。
  • Agent 混用 JSpecify 和 Spring 注解,却没有迁移计划——选择一种模块边界策略。

评论

支持 Markdown