泛型基础

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
 
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
 
常见泛型的写法如下:
Set<T>:表示集合里是T类的实例
List<E>:表示集合里是E类的实例
List<?>:表示集合里的对象类型不确定,未指定
List: 同 List<?> 是一样的。
是否使用泛型对比:
1、用泛型:
 List<T> list=new ArrayList<T>(); 
T t=list.get(0); 
2、不用泛型:
  List  list=new ArrayList(); 
  T t=(T)list.get(0); 
 
通过上述例子可以看出:
a、用泛型只是确定了集合内的元素的类型,但却是在编译时确定了元素的类型再取出来时已经不再需要强转,
增强程序可读性,稳定性和效率
b、不用泛型时,如果是装入集合操作,那么元素都被当做Object对待,失去自己的类型,那么从集合中取出来时,往往需要转型,效率低,容易产生错误
 
 综上所述: 使用泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。

猜你喜欢

转载自deble.iteye.com/blog/2249158
今日推荐