java 范型攻略篇

java 范型攻略篇

ID:26449185

大小:70.50 KB

页数:15页

时间:2018-11-27

java 范型攻略篇_第1页
java 范型攻略篇_第2页
java 范型攻略篇_第3页
java 范型攻略篇_第4页
java 范型攻略篇_第5页
资源描述:

《java 范型攻略篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在已发布的Java1.4中在核心代码库中增加了许多新的API(如Loging,正则表达式,NIO)等,在最新发布的JDK1.5和即将发布的JDK1.6中也新增了许多API,其中比较有重大意义的就是Generics(范型)。  一.什么是Generics?  Generics可以称之为参数类型(parameterizedtypes),由编译器来验证从客户端将一种类型传送给某一对象的机制。如Java.util.ArrayList,编译器可以用Generics来保证类型安全。  在我们深入了解Generics之前,我们先来看一看当前的java集合框架(Collection)。在j2SE1.4中所

2、有集合的RootInterface是Collection  Collectionsexamplewithoutgenericity:Example11protectedvoidcollectionsExample(){2 ArrayListlist=newArrayList();3 list.add(newString("teststring"));4 list.add(newInteger(9));//purposelyplacedheretocreatearuntimeClassCastException5 inspectCollection(list);6}789protectedv

3、oidinspectCollection(CollectionaCollection){10 Iteratori=aCollection.iterator();11 while(i.hasNext()){12  Stringelement=(String)i.next();13 }14}  以上的样例程序包含的两个方法,collectionExample方法建立了一个简单的集合类型ArrayList,并在ArrayList中增加了一个String和一个Integer对象.而在inspecCollection方法中,我们迭代这个ArrayList用String进行Cast。我们看第二个方法,

4、就出现了一个问题,Collection在内部用的是Object,而我们要取出Collection中的对象时,需要进行Cast,那么开发者必需用实际的类型进行Cast,像这种向下造型,编译器无  法进行检查,如此一来我们就要冒在代码在运行抛出ClassCastException的危险。我们看inspecCollection方法,编译时没有问题,但在运行时就会抛出ClassCastException异常。所以我们一定要远离这个重大的运行时错误  二.使用Generics  从上一章节中的CassCastException这种异常,我们期望在代码编译时就能够捕捉到,下面我们使用范型修改上一章的样

5、例程序。  //Example21protectedvoidcollectionsExample(){2 ArrayListlist=newArrayList();3 list.add(newString("teststring"));4 //list.add(newInteger(9));thisnolongercompiles5 inspectCollection(list);6}789protectedvoidinspectCollection(CollectionaCollection){10 Iteratori=aC

6、ollection.iterator();11 while(i.hasNext()){12  Stringelement=i.next();13 }14}  从上面第2行我们在创建ArrayList时使用了新语法,在JDK1.5中所有的Collection都加入了Generics的声明。例:  //Example31publicclassArrayListextendsAbstractList{2 //detailsomitted...3 publicvoidadd(Eelement){4  //detailsomitted5 }6 publicIteratoritera

7、tor(){7  //detailsomitted8 }9}  这个E是一个类型变量,并没有对它进行具体类型的定义,它只是在定义ArrayList时的类型占位符,在Example2中的我们在定义ArrayList的实例时用String绑定在E上,当我们用add(Eelement)方法向ArrayList中增加对象时,那么就像下面的写法一样:publicvoidadd(Stringelement);因为在ArrayList

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

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

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