Java - 泛型小记
·
泛型
泛型 = 类型参数化
在定义类、接口或方法时,不指定具体类型,而是用类型占位符,等到使用时再传入真实类型。
基本语法
<T>
放在类名或方法名的后面
// 定义一个泛型类
public class Box<T> {
private T content;
public void put(T item) {
this.content = item;
}
public T get() {
return content;
}
}
// 使用时指定类型
Box<String> stringBox = new Box<>();
stringBox.put("Hello"); // ✅ OK
String s = stringBox.get(); // ✅ 直接返回 String,无需强制转换
Box<Integer> intBox = new Box<>();
intBox.put(100); // ✅ OK
Integer n = intBox.get(); // ✅ 返回 Integer
泛型方法
方法也可以有自己的泛型,即使类不是泛型。
语法 写在返回类型的前面
public class Printer {
// 泛型方法:可以打印任意类型
public static <T> void print(T item) {
System.out.println(item);
}
}
// 调用
Printer.print("Hello"); // T = String
Printer.print(42); // T = Integer
例子
public static <T> Result<T> success(T java) {
Result<T> result = new Result<>();
result.code = 200;
result.msg = "操作成功";
result.data = data;
return result;
}
- 方法级别的泛型声明
- 告诉编译器 这个方法会使用一个泛型类型,暂时叫T
- 作用范围仅限于这个方法(包括返回类型和参数类型)
静态方法中的泛型必须自己声明,因为静态方法属于类,不依赖实例,所以必须重新声明。
更多推荐



所有评论(0)