泛型不经可以用在整个类上,同样也可以用在雷中包含参数化的方法,而这个方法所在的类可以是泛型,也可以不是泛型,也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。
一个基本的原则,优先使用泛型方法,然后才是泛型类,另外对于static方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。
泛型方法的定义:
public Class Methods{
public <T> void f(T x){
System.out.println(x.getClass().getName());
}
public static void main(String[] args){
Methods m = new Methods();
m.f("");
m.f("fsafsda");
m.f(23);
m.f(12.0f);
m.f('s');
}
}
注意,当在使用泛型类的时候,必须在创建对象的时候指定类型参数的值,而在使用泛型方法的时候,通常不必指明参数类型,因为编译器会为我们找出具体的类型,这成为类型参数推断