Java 泛型(Generics)是 Java 5 引入的重要特性,允许开发者在编译期实现类型安全的集合操作,避免强制类型转换和运行时异常。通过泛型,可以编写可复用、灵活的代码。
🧩 核心概念
类型参数
使用<T>
等占位符定义泛型类/方法,例如:public class Box<T> { private T item; public void setItem(T item) { this.item = item; } }
类型擦除
泛型信息在运行时会被擦除,编译器生成桥接方法确保兼容性。例如:List<String> list = new ArrayList<>();
实际运行时类型为
List
。通配符(Wildcards)
使用?
表示不确定的类型,例如:void print(List<? extends Number> list) { ... }
泛型方法
独立于类的泛型方法,例如:public static <T> T findMax(List<T> list) { ... }
📌 实践技巧
- 避免原始类型:始终使用泛型代替
List
、Map
等原始类型。 - 边界约束:通过
extends
或super
限制类型范围。 - 嵌套泛型:支持复杂类型结构,例如
Map<String, List<Integer>>
。
🧠 拓展阅读
想深入了解 Java 泛型的高级用法?点击这里前往 /java-tutorial/advanced_topics 查看更多内容!