




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泛型可提高代码的高扩展性和重用率.1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。3、泛型的类型参数可以有多个。4、泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。5、泛型的参数类型还可以是通配符类型。例如Class classType = Class.forName(java.lang.String);泛型可以用在接口,类方法,集合上面.泛型接口: interface testGenerics T getT(T t); String assume(T t); 泛型类:public class GenericsFoo private T x;public GenericsFoo(T x) this.x = x;public T getX() return x;public void setX(T x) this.x = x;使用来声明一个类型持有者名称,然后就可以把T当作一个类型代表来声明成员、参数和返回值类型。当然T仅仅是个名字,这个名字可以自行定义。泛型方法:是否拥有泛型方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。如:public class ExampleA public void f(T x) System.out.println(x.getClass().getName();使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。限制泛型的可用类型:在上面的例子中,由于没有限制class GenericsFoo类型持有者T的范围,实际上这里的限定类型相当于Object,这和“Object泛型”实质是一样的。限制比如我们要限制T为集合接口类型。只需要这么做:class GenericsFoo,这样类中的泛型T只能是Collection接口的实现类,传入非Collection接口编译会出错。注意:这里的限定使用关键字 extends,后面可以是类也可以是接口。但这里的extends已经不是继承的含义了,应该理解为T类型是实现Collection接口的类型,或者T是继承了XX类的类型。下面继续对上面的例子改进,我只要实现了集合接口的类型:public class CollectionGenFoo private T x;public CollectionGenFoo(T x) this.x = x;public T getX() return x;public void setX(T x) this.x = x;通配符泛型:为了解决类型被限制死了不能动态根据实例来确定的缺点,引入了“通配符泛型”,针对上面的例子,使用通配泛型格式为,“?”代表未知类型,这个类型是实现Collection接口。那么上面实现的方式可以写为:public class CollectionGenFooDemo public static void main(String args) CollectionGenFoo listFoo = null;listFoo = new CollectionGenFoo(new ArrayList();/现在不会出错了CollectionGenFoo listFoo1 = null;listFoo=new CollectionGenFoo(new ArrayList();System.out.println(实例化成功!);注意:1、如果只指定了,而没有extends,则默认是允许Object及其下的任何Java类了。也就是任意类。2、通配符泛型不单可以向下限制,如,还可以向上限制,如,表示类型只能接受Double及其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市公共交通车辆借用与共享出行服务合同
- 2025年重型自卸车批量采购及全面维护保养服务合同
- 2025年新能源汽车车库租赁合同执行与纠纷预防管理
- 2025年跨境电商物流体系劳务分包合同标准文本
- 全方位珠宝首饰维修技师培训与职业发展保障协议
- 《2025年时尚创意印刷品定制及售后服务合同》
- 2025-2030中国旅游观光艇行业发展前景及投资建议研究报告
- 2025-2030中国折叠式家具行业竞争格局及消费趋势预测报告
- 混凝土振捣与密实度控制方案
- 建筑抗震设计与施工方案
- 会计从业资格基础知识汇总
- 项目干系人管理评估
- 保险行业纳税筹划案例分析
- 私立民办高中学校项目建议书
- 比亚迪汽车发展史
- 茶与健康 第二讲 茶成分课件
- 手术部位标识
- 项目总结ppt范文
- 医院体检中心现状与五年发展规划
- 高中思想政治-人教版新教材必修1第四课第一框:中国特色社会主义进入新时代教学设计学情分析教材分析课后反思
- 不错!我真的很不错
评论
0/150
提交评论