现在的位置: 首页 > 综合 > 正文

泛型

2013年05月19日 ⁄ 综合 ⁄ 共 1079字 ⁄ 字号 评论关闭

泛型,当一个类、接口用了泛型后,其方法

有时为了规定返回类型和规定参数类型,但是不能用常规的类型来规定,这个时候可以利用上泛型,泛型,顾名思义,广泛的类型,这个类型是指类类型,很广。现在就将其当做是实体类类型来看。而返回类型或者参数类型没有具体指代是哪个实体类类型。所以强调一点就是方法如果想用泛型,那么必须得通过类或者接口。

第二个就是泛型可限制,可extends ...

第三个是通配符,与第二个连起来一块看:

public class CollectionGenFoo<T extends Collection> {

private T x;

public CollectionGenFoo(T x) {

this.x = x;

}

public T getX() {

return x;

}

public void setX(T x) {

this.x = x;

}

}

实例化的时候可以这么写:

public class CollectionGenFooDemo {

   public static void main(String args[]) {

      CollectionGenFoo<ArrayList> listFoo = null;

      listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());

      //出错了,不让这么干。

      //原来作者写的这个地方有误,需要将listFoo改为listFoo1

     // CollectionGenFoo<Collection> listFoo1 = null;

     // listFoo1=new CollectionGenFoo<ArrayList>(new ArrayList());

    System.out.println("实例化成功!");

}

}

如果不能肯定是ArrayList类型的,那么可以按下面来办:

public class CollectionGenFooDemo {

public static void main(String args[]) {

CollectionGenFoo<ArrayList> listFoo = null;

listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());

//现在不会出错了

//原来作者写的这个地方有误,需要将listFoo改为listFoo1

CollectionGenFoo<? extends Collection> listFoo1 = null;

listFoo1=new CollectionGenFoo<ArrayList>(new ArrayList());

System.out.println("实例化成功!");

}

}

抱歉!评论已关闭.