java泛型类型参数命名遵循t、e、k、v等单个大写字母约定,按语义选择标准缩写,多个参数按逻辑顺序排列,不可用基本类型或创建实例。

用单个大写字母作为类型参数名
泛型声明中,类型参数应使用简洁、统一的大写字母,比如 T、E、K、V。避免用单词(如 ItemType)或小写字母(如 t),这会破坏一致性,也容易与普通变量混淆。
按语义选择标准缩写
不同场景对应不同惯例,选对标识符能一眼看出用途:
-
T 表示 Type,最通用,适合任意类型参数,如
Box<t></t> -
E 表示 Element,专用于集合类元素,如
ArrayList<e></e> -
K 和 V 分别表示 Key 和 Value,只在键值对结构中成对出现,如
Map<k v></k> -
N 表示 Number,用于数值相关泛型,如
NumberContainer<n extends number></n> - ? 是通配符,不参与命名,但需注意它不等同于类型参数,不能在类内部用作字段或方法返回类型
多个参数时保持逻辑清晰
当一个泛型类或接口需要多个类型参数,按常见顺序和含义排列:
- 先写主类型,再写辅助类型,例如
Pair<k v></k>而不是Pair<v k></v> - 若含约束(如上界),仍沿用标准字母,仅在声明中补充
extends,如<t extends comparable>></t> - 避免无意义的组合,比如
<a b c></a>—— 没有上下文时无法理解其职责
不适用基本类型,也不用作运行时类型
类型参数本质是编译期占位符,必须是引用类型:
- 不能写
Box<int></int>,只能用包装类Box<integer></integer> - 类型参数不能用于创建实例(如
new T())、静态字段或泛型数组(如T[] arr = new T[10]不合法) - 命名规范在此不改变擦除行为,但清晰的命名能帮你避开这些陷阱
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











