12泛型程序设计

12泛型程序设计

ID:20317303

大小:534.25 KB

页数:30页

时间:2018-10-12

12泛型程序设计_第1页
12泛型程序设计_第2页
12泛型程序设计_第3页
12泛型程序设计_第4页
12泛型程序设计_第5页
资源描述:

《12泛型程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第12章泛型程序设计1、从Java程序设计语言1.0版发布以来,变化最大的部分就是泛型。专家组花费了5年左右的时间用来定义规范和测试实现!2、使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型对于集合类尤其有用,例如,ArrayList就是一个无处不有的集合类。即可以写成ArrayList

2、String和File对象分别设计不同的类。实际上,也不需要这样做,因为一个AirayList类可以聚集任何类型的对象。这是一个泛型程序设计的实例。{聚集String和File对象与ArrayList类有唔关系呀?关系就在于ArrayList

3、个长度!tion){}//集合Collection转换成数组列表ArrayListpublicintsize(){return;mentData,size);privatestaticfinallongserialVersionUID=8683452581122892189L;privatetransientObjectelementData[];privateintsize;分析:这样的实现有两个问X1)当获取一个值时必须进行强制类型转换ArrayListfiles=newArrayList();Stringfilename=(String)files,get(0);2)此

4、外,这里没有错误检査,可以向数组列表中添加任何类的对象。files,add(newFile对于这个调用,编译和运行都不会出错。然而在其他地方,如果将get的结果强制类型转换为String类型,就会产生一个错误。3、泛型提供了一个更好的解决方案:类型参数(typeparameters)。【针对上而的类型强制转换和安全问题!】1)如上例的ArrayList类用一个类型参数用来指示元素的类型:ArrayListfiles=newArrayList

5、好地利用这个信息。当调用get的时候,不耑要进行强制类型转换,编译器就知道返回值类型力String,而不是Object。Stringfilename=files,get(0);程序具有更好的可读性和安全性,3)编译器还知道ArrayLisKString〉屮add方法有一个类型为String的参数。这将比使用Object类型的参数安全一些。现在,编译器可以进行检查,避免插入错误类型的对象。例如:files.add(newFile是无法通过编译的。因为增加的不是String类型。4)出现编译错误比类在运行吋出现类的强制类型转换异常要好得多。类型参数的魅力在于:4、谁想成为泛型程序

6、员?1)使用像ArrayList〈String>的泛型类很容易...2)通配符类型(wildcardtype)12.2简单泛型类的定义1、一个泛型类(Genericclass)就是具有一个或多个类型变量的类。下而使用一个简单的Pair类作为例子。对于这个类来说,我们只关注泛型,而不要为数据存储的细节烦悩。{难道这就是只有一个T类型的原因吗?你可以用publicclassPair{...},这样你可以定义两种类型了,T和U!!!}//去掉里面的null赋值也可以!publicclassPair{privateTfirst;privateTsecond;publi

7、cPair(){first=null;second=null;publicPair(Tfirst,Tsecond){this.first=first;this.second=second;}//get和set方法publicTgetFirst(){returnfirst;}publicTgetSecond(){returnsecond;}publicvoidsetFirst(TnewValue){first=newValue;}publicvoidsetSecond(TnewValue){second=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。