全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泛型可提高代码的高扩展性和重用率.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修订)解读课件
- 学堂在线 人工智能原理 章节测试答案
- 中国丝绸智慧树知到答案2024年浙江理工大学
- 幼儿园中班游戏活动《勇敢的消防员》教学设计【含教学反思】
- 自动化专业职业生涯人物访谈报告
- 2023年家生活趋势白皮书-小红书
- (井控技术)第二章压力概念课件
- 2021国网通信产业集团考试真题及答案
- 家具厂绩效考核制度
- 劳动争议调解仲裁法知识讲座
- 教科版科学五年级上册科学复习计划
评论
0/150
提交评论