java中的泛型方法

来源:互联网 发布:阿里云专有网络配置 编辑:程序博客网 时间:2024/06/05 10:20

一开始看到泛型方法的时候是蒙蔽的- -完全忘记了自己学过并写过类似的代码

不过是否拥有泛型方法,与其所在的类是否是泛型没有关系。

作用:

泛型方法使得该方法能够独立于类而产生变化。

以下是一条基本的指导原则:无论何时只要你能做到,你就应该尽量使用泛型方法。对于一个static的方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。

如何定义泛型方法:

要定义泛型方法,只需要将泛型参数列表置于返回值之前。


以下是一个简单的程序
package 泛型方法;


public class GenericMethods{

  public <T> void f(T x){  //泛型方法
  System.out.println(x.getClass().getName());
}
  public static void main(String[] args){
    GenericMethods gm=new GenericMethods();
    gm.f("");
    gm.f(0);
    gm.f(0.1); 
    gm.f(1.0F);
    gm.f('a');
    gm.f(gm);
}
}


//output
java.lang.String
java.lang.Integer
java.lang.Double
java.lang.Float
java.lang.Character
泛型方法.GenericMethods


此代码中GenericMethods并不是参数化,尽管这个类和其内部的方法可以被同时参数化,但是在这个例子中,只有方法f()拥有类型参数。这是由该方法的返回类型(该代码中为void)前面的类型参数列表指明的。

注意:

当使用泛型类时,必须在创建对象的时候指定类型参数的值,而使用泛型方法的时候,通常不必指明参数类型。

原创粉丝点击