泛型不经可以用在整个类上,同样也可以用在雷中包含参数化的方法,而这个方法所在的类可以是泛型,也可以不是泛型,也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。

 

一个基本的原则,优先使用泛型方法,然后才是泛型类,另外对于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');
	}
}

 

 

注意,当在使用泛型类的时候,必须在创建对象的时候指定类型参数的值,而在使用泛型方法的时候,通常不必指明参数类型,因为编译器会为我们找出具体的类型,这成为类型参数推断