泛型

来源:互联网 发布:javascript难吗 编辑:程序博客网 时间:2024/06/07 05:48

Java泛型:可以事先规定集合中的元素的数据类型,避免将来使用的麻烦。

 

泛型(Gernerics)机制自从Java se5.0开始引入,其实本质是将原本确定不变的数据类型参数化。

 

好处:

       作为对原有Java类型体系的扩充,使用泛型可以提高Java应用程序的类型安全、可维护性和可靠性。

 

*用法:

       创建集合容器时,规定其允许保存的元素类型,然后由编译器负责添加元素的类型合法性检查,在取用集合元素时则不必再进行造型处理。

 

例如:

import java.util.*;

public class TestFanxing{
 public static void main (String[] args) {
  Vector<String> v = new Vector<String>();//集合(加入了泛型标记):只能够保存String类型的元素,不能保存其他类型数据
  v.addElement("Tom");//向集合中添加元素
  v.addElement("billy");
  //v.addElement(new Date());
  //v.addElement(new Integer(200));
  //v.addElement(400);
  
  for (int i = 0; i<v.size(); i++){
   //Object o = v.elementAt(i);//从集合中取出来
   //System.out.println(o);
   String s = v.elementAt(i);//不需要封装
   System.out.println(s);
  }
  
  //String s = (String)v.elementAt(1);
  //System.out.println(s.toUpperCase());
 }
}

 

·在使用集合的时候,应该用泛型来标记进行元素附加的约束。

 

·泛型类:由类型参数修饰的类型称为泛型类。

格式如下:数据类型<类型参数>

例如:

public class Vector<E>{

     public void addElement(E obj){}

     public E elementAt(int index){}

}

 

·使用泛型类时应明确指定类型参数:

Vector<String> v = new Vector<String>();

·类型通配符“?”

使用?作为类型参数,如: Vector<?>

·Vector<?>是任何泛型Vector的父类型。

它的变量在调试方法时是受到限制的——凡是必须知道具体类型参数才能进行的操作均被禁止。