泛型中的模糊继承,解析T的意义

来源:互联网 发布:西西软件盒安卓版 编辑:程序博客网 时间:2024/06/06 05:31

关于泛型中的模糊继承,我们常常会见到

T extends  superClass 的语句,为什要采用这种方式呢?其实只定义T 意义是不大的,我们常常会用不确定的类,但是想调用确定的方法,在泛型中我们可以采用继承父类或者接口来实现这种设想

比如说,我想定义一个类型,我希望里面有一个 compareTo()方法,而我们知道compareTo方法是接口 Comparable 中的,子类有很多,所以我们可以这样限制  ArrayList<T extends Compareble> 这样就可以往动态数组中添加实现了compareble的类型了,而且可以使用里面定义的方法。

看一下例子:

package com.jianjian2.Reflection;

 

publicclass GeniericTest6

{

   publicstaticvoid main(String[] args)

   {

      People<String> people = new People<String>("a","n");

      String[] s = {"a","b","vc"};

      people.method(s);

     

   }

}

 

class People<TextendsComparable>

{

   private Ts1;

   private Ts2;

   public People(T s1, T s2)

   {

      this.s1 = s1;

      this.s2 = s2;

     

   }

   public T getS1()

   {

      returns1;

   }

   publicvoid setS1(T s1)

   {

      this.s1 = s1;

   }

   public T getS2()

   {

      returns2;

   }

   publicvoid setS2(T s2)

   {

      this.s2 = s2;

   }

   public void method(T[] t)

   {

      for(inti= 0;i < t.length;i ++)

      {

        System.out.println(t[i].compareTo(t[i]));

      }

   }

  

  

}

实现了Comparable接口的compareTo方法,这样就有了自己的比较机制了,这种方法常常应用到自定义类的比较!