Java泛型速查手册是按场景、报错、符号和限制四维度快速定位用法的归纳方法:泛型类/方法/集合为常用入口;编译错误提示直指漏泛型、未声明类型参数等问题;<T>声明类型参数,<?>及上下界通配符用于安全读写;泛型不支持基本类型和协变。

Java 泛型速查手册不是一本实体书或官方文档名称,而是一种实用归纳方式——它指代的是对泛型核心用法、常见写法和易错点的快速定位与查阅方法。掌握“怎么查”,本质是建立清晰的检索路径:按使用场景找语法,按报错信息反推规则,按关键词锁定要点。
按用途查:类、方法、集合,三类入口最常用
日常开发中,90% 的泛型需求落在以下三类结构上,直接按需切入:
-
泛型类:看类定义是否带
<T>,如class Box<T> { ... };实例化时写Box<String> box = new Box<>(); -
泛型方法:方法签名前有类型参数声明,如
public <E> void print(E item) { ... };调用时通常可省略类型实参(编译器自动推断) -
集合泛型:这是最频繁场景,如
List<Integer>、Map<String, Person>;注意右侧new ArrayList<>()中的空尖括号是 Java 7+ 推荐写法
按报错查:编译错误提示就是速查线索
泛型相关错误几乎都发生在编译期,错误信息自带关键线索:
-
incompatible types: Object cannot be converted to String→ 检查集合是否漏写了泛型,比如用了ArrayList而非ArrayList<String> -
cannot resolve symbol T→ 类或方法未声明类型参数,比如在普通类里直接写T value;却没加<T> -
generic array creation→ 尝试用new T[10]创建泛型数组,这是禁止的;应改用Object[]+ 显式转型,或用ArrayList<T>
按符号查:三个核心符号对应三类操作
泛型语法围绕三个关键符号展开,记住它们的含义就能快速定位规则:
立即学习“Java免费学习笔记(深入)”;
-
<T>:类型参数声明位,出现在类名后、方法返回类型前,表示“此处接受一个类型占位符” -
<?>:通配符,用于变量声明,表示“某个未知但确定的类型”,如List<?> list可接收任何List -
<? extends X>和<? super X>:带边界的通配符,前者用于读取(安全上限),后者用于写入(安全下限),例如void process(List<? super Integer> nums)允许传入List<Number>或List<Object>
按限制查:基本类型不能直接用,多态不穿透泛型
两个硬性限制常被忽略,却是高频踩坑点:
- 泛型只支持引用类型:不能写
ArrayList<int>,必须用包装类ArrayList<Integer>;必要时可用IntStream等原生类型替代方案 - 泛型类型不协变:即
ArrayList<String>不是ArrayList<Object>的子类型;若需向上兼容,要用通配符,如ArrayList<? extends Object>


















