java中的泛型类和泛型方法

来源:互联网 发布:centos 离线安装ruby 编辑:程序博客网 时间:2024/05/29 18:19

一、泛型类
一个泛型类(generic class)就是具有一个或者多个类型变量的类,类型变量用尖括号(<>)括起来,并放在类名的后面。泛型类可以有多个类型变量。类型变量使用大写形式,而且比较短。在Java类库中使用变量E表示集合元素类型,K表示关键字类型,V表示值的类型,T表示任意类型。
举例说明如下:

public class Pair<T>   {     public Pair() { first = null; second = null; }     public Pair(T first, T second) { this.first = first;  this.second = second; }     public T getFirst() { return first; }     public T getSecond() { return second; }     public void setFirst(T newValue) { first = newValue; }     public void setSecond(T newValue) { second = newValue; }     private T first;     private T second;  }  

测试如下:

public class PairTest1  {     public static void main(String[] args)     {        **//这里mm的类型必须设置为Pair<String>,而不可以为Pair<T>**        Pair<String> mm = new Pair<String>("a", "b");       System.out.println("min = " + mm.getFirst());        System.out.println("max = " + mm.getSecond());     }  }  

二、泛型方法
泛型方法可以在普通类中定义,也可以在泛型类中定义。需要注意的是,类型变量放在修饰符的后面,返回类型的前面。
举例如下:

public class GenericMethodTest {    private < T > T getMiddle( T[] arr ) {        return arr[ arr.length / 2 ];    }    public static void main( String[] args ) {        String[] ss = new String[]{ "a", "b", "c" };        String middle = new GenericMethodTest().getMiddle( ss );        System.out.println( middle ); // 输出:b    }}