> 首先需要注意的是,泛型方法所在的类可以是泛型类也可以不是。
## 基本原则
- 如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法
- 对于static修饰的方法,无法访问泛型类的类型参数。所以static方法需要使用泛型能力,就必须使其成为泛型方法
public class LinkedStack<T>{
/*
...
*/
public static void push(T item){//无法使用T类型参数
top = new Node<T>(item, top);
}
}
## 定义泛型方法
> 要定义一个泛型方法,只需要将泛型参数列表置于返回值之前
public class GenericMethod{
private <A, B> String getClassType(Integer x, A a, B b){
return x.getClass().getName()+" "+a.getClass().getName()+" "+b.getClass().getName();
}
public static void main(String[] ss){
System.out.println(new GenericMethod().getClassType(2,1.0,""));
}
}