泛型是2.0以后加入的新的特性。
作用主要是三个拉:一是提高代码重用,二是类型安全,三是提高性能。
代码重用表现在:泛型相当于模板的作用,比如定义个简单的计算的类,public class Computer<T>, 其中定义了一个排序的方法,public void Myorder(T[] list); 然后再使用这个类的时候就用具体的东东再代入, 比如用Computer<int>,Computer<Cat>,Cat是自定义的一个类,这样,就省略了int的Computer类和Cat的Computer类的定义了,达到代码重用。
类型安全表现在,以往的版本,我们常用ArrayList来存一组类型相同的对象,比如我在ArrayList里面存一组Cat对象,然后,在读出来的时候,安全起见,我需要用代码再判断下取出来的对象类型是不是Cat,但是泛型引入就能解决这个问题,用List<Cat>来定义这个集合,如果我把别的对象存储进去,在编译的时候就会报错,所以是类型安全的。
性能提高主要表现在拆装箱上。还是上面的例子,以前,我们用ArrayList存储int数组,也是以object形式存取的,存在巨大的拆装箱的性能损失,而用泛型技术以后,用List<int>来存取,在实际编译的时候,就已经转换成int的数组了,存取的就是int,所以避免了这个损耗,所以性能有很大的提升。 |