Java泛型方法通过在返回类型前声明类型参数(如)支持任意类型,编译器可自动推断类型;支持多参数类型一致性约束、多类型变量(如)及上界限定(如T extends Comparable)。

Java 中泛型方法通过在方法声明前添加类型参数(如
基本语法:声明类型参数
在返回类型前用尖括号声明一个或多个类型变量,例如:
public <T> void print(T item) {
System.out.println(item);
}
这里的 print<string>("hello")</string>,编译器通常自动推断(如 print("hello") → T 为 String)。
处理多个参数:保持类型一致性
当方法接收多个同类型参数时,用同一个类型变量约束它们:
立即学习“Java免费学习笔记(深入)”;
public <T> boolean isEqual(T a, T b) {
return Objects.equals(a, b);
}
这样可确保 a 和 b 是同一类型(如都是 Integer),避免 isEqual("a", 123) 这类不安全调用(编译时报错)。若需不同但相关的类型,可用多个变量:<k v></k>。
限定类型范围:使用 extends 约束上界
若方法需调用参数的特定方法(如 compareTo()),必须限定类型上界:
public <T extends Comparable<T>> T getMax(T a, T b) {
return a.compareTo(b) >= 0 ? a : b;
}
-
T extends Comparable<t></t>表示T必须实现Comparable,且自比较(如String、Integer合法,Object不合法) - super(那是通配符的用法,不适用于方法类型参数)
与泛型类配合:方法类型参数优先于类类型参数
如果类本身是泛型(如 class Box<t></t>),其内部方法可复用类的 T,也可定义独立的方法类型参数:
class Box<T> {
private T content;
// 复用类的 T
public T getContent() { return content; }
// 独立方法泛型:可转换为任意类型 U
public <U> U convertTo(Function<T, U> mapper) {
return mapper.apply(content);
}
}
调用 box.convertTo(String::valueOf) 时,U 被推断为 String,不受类声明的 T 限制。


















