乐趣区

泛型之泛型方法

public class F {
// 泛型方法
public static <T> T getT(T[] array) {
return array[array.length/2];
}
public void f() {
// 显式赋值
String name1 = F.<String>getT(new String[] {“ 张三 ”,” 李四 ”,” 王五 ”});
// 隐式赋值,常用此方式,可以不指定 <String>
String name2 = F.getT(new String[] {“ 张三 ”,” 李四 ”,” 王五 ”});
}
}
泛型方法不受类的限制,也就是说,即使方法所在的类不是泛型类,也可以定义泛型方法;在泛型类中定义的方法,也不一定是泛型方法,就看你如何定义了。定义泛型方法的格式:修饰符 <T> 返回值 方法名 () {} 泛型方法的特点:

类型变量(<T>)定义在返回值之前, 这是必须的,只有这样,它才是泛型方法
在返回值类型中使用泛型
在方法参数类型中使用泛型
泛型方法不受类的限制,不受 static 的限制

正常的泛型方法既有返回值也有方法参数,并且返回值和方法参数都使用泛型 T,但即使没有泛型方法没有返回值或者没有方法参数,也不算错,但没有意义。

泛型类中可以定义泛型方法。注意:是泛型方法,与泛型类中的方法是两码事

普通类中也可以定义泛型方法
泛型方法 != 泛型类中的方法

退出移动版