Java之泛型的定义简介
下文笔者讲述java中泛型的简介说明,如下所示
Java泛型(Generics)简介
Java中泛型(Generics)是
JDK 5 引入一项重要特性
它允许在定义类、接口和方法时使用类型参数(Type Parameters)
从而实现 类型安全 和 代码复用
泛型基本概念
泛型本质是“参数化类型”
即允许将类型(如 `Integer`、`String`等)
作为参数传递给类或方法
使得同一套逻辑可以适用于多种数据类型
-在没有泛型时
通常使用`Object`来接收各种类型的数据
但在取出时需要强制类型转换
容易引发`ClassCastException`
-使用泛型后
编译器会在编译阶段就检查类型是否匹配
避免运行时错误
泛型语法格式
1.泛型类
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
例:
Box<String> stringBox = new Box<>();
stringBox.setItem("Hello");
String item = stringBox.getItem(); // 不需要强转
2.泛型接口
public interface Repository<T, ID> {
T findById(ID id);
void save(T entity);
}
实现时可指定具体类型
public class UserRepository implements Repository<User, Long> {
public User findById(Long id) { ... }
public void save(User user) { ... }
}
3.泛型方法
泛型也可以只用于某个方法
而不影响整个类
public class Util {
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}
}
调用方式:
Integer[] intArray = {1, 2, 3};
Util.<Integer>printArray(intArray); //或直接 Util.printArray(intArray);
泛型优点
| 优点 | 描述 |
| 类型安全 | 编译期就能发现类型不匹配的问题 |
| 避免强制类型转换 | 取出元素时无需再进行 `(Type)`转换 |
| 提高代码复用性 | 同一套逻辑适用于多个类型 |
泛型类型参数命名规范
常见的泛型变量命名方式如下| 类型参数 | 含义 |
| `T` | Type(任意类型) |
| `E` | Element(集合中元素的类型) |
| `K` | Key(键值对中的键) |
| `V` | Value(键值对中的值) |
| `N` | Number(数值类型) |
泛型类型相关说明
| 内容 | 说明 |
| 目标 | 实现参数化类型,提高类型安全性与代码复用 |
| 支持结构 | 类、接口、方法均可使用泛型 |
| 编译机制 | Java 泛型是编译期特性(类型擦除)运行时无泛型信息 |
| 常见用途 | 集合框架(如`list<T>`)、通用工具类、DAO 层接口等 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


