关于 128-java-generics
面向 Java 开发者的泛型技能,用于提升编译期类型安全和 API 复用能力。内容涵盖通配符变型、类型擦除、安全可变参数及泛型 API 设计,并设有编译与验证要求。
主要功能
- 01避免原始类型和不安全转换
- 02使用 PECS 通配符变型
- 03处理类型擦除
- 04用 SafeVarargs 防止堆污染
- 05设计可复用的泛型 API
- 06泛型与记录及密封类型结合
适用场景
- 01提升 Java 泛型类型安全
- 02重构可复用类型上下文的 API
- 03审查通配符和变型用法
- 04处理未检查转换和原始类型
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jabrena/ plinth --skill 128-java-generics安装后在 Claude Code 中输入/128-java-generics确认已加载。
附带文件references/128-java-generics.md
详细介绍
Java 泛型最佳实践
使用全面的泛型最佳实践审查并改进 Java 代码,确保编译时类型安全,并支持灵活、可复用的 API。
此技能涵盖哪些内容?
- 类型安全:避免使用原始类型,消除不安全的强制类型转换
- 代码复用:在多种类型场景中使用泛型方法和类型
- PECS 通配符:生产者使用
? extends,消费者使用? super - 使用菱形运算符进行类型推断
- 了解类型擦除:类型令牌、工厂模式、数组创建
- 泛型继承与变型:不变、协变、逆变
- 使用
@SafeVarargs防止堆污染 - 通配符捕获辅助方法、自限定泛型(CRTP)流式构建器
- 正确设计通配符 API:
Comparator<? super T>、Function<? super T, ? extends R> - 数组与泛型的协变陷阱、使用
TypeReference/TypeToken进行序列化 - 泛型命名约定(
T、E、K/V、?)、类型安全的异构容器 - 与 Records、密封类型和模式匹配集成
**范围:**参考文档按示例(良好/不良代码模式)介绍每个核心领域。请根据适用示例应用建议。
约束
应用任何泛型更改之前,请确保项目能够编译。如果编译失败,请立即停止,不要继续操作,直到问题解决。完成改进后,运行完整验证。
- 强制要求:应用任何更改之前,运行
./mvnw compile或mvn compile - 安全要求:如果编译失败,请立即停止,不要继续操作——编译失败属于阻塞条件
- 验证:应用改进后,运行
./mvnw clean verify或mvn clean verify - 应用之前:阅读参考文档,了解详细示例、良好/不良模式和约束
- 边界情况:如果请求范围不明确,请先停止并提出澄清问题,再应用更改
- 边界情况:如果缺少必需的输入、文件或工具,请说明缺少的内容,并询问是否需要提供设置指导后继续
何时使用此技能
- 使用泛型改进代码
- 应用泛型
- 使用泛型重构代码
- 提高 Java API 的泛型类型安全性
- 修复 Java 代码中的原始类型和未经检查的强制类型转换
工作流
- 在更改泛型之前编译项目
运行 ./mvnw compile 或 mvn compile;如果编译失败,请立即停止。
- 阅读泛型参考文档并评估类型安全性
阅读 references/128-java-generics.md,找出原始类型、不安全的强制类型转换、通配符误用以及 API 变型方面的改进机会。
- 应用泛型重构
在保留行为的前提下,实施选定的泛型类型和 API 改进。
- 通过完整构建进行验证
应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。
参考文档
详细指导、示例和约束请参见 references/128-java-generics.md。
评论
支持 Markdown