CoreJava系列讲座之泛型.ppt_第1页
CoreJava系列讲座之泛型.ppt_第2页
CoreJava系列讲座之泛型.ppt_第3页
CoreJava系列讲座之泛型.ppt_第4页
CoreJava系列讲座之泛型.ppt_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Core Java系列讲座之泛型,泛型的定义,定义 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。,泛型的规则和限制,规则和限制 泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 泛型的类型参数可以有多个。 泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。 泛型的参数类型还可以是通配符类型。例如Class classType = Class.forName(java.lang.String);,例子/注意,JRE用的是5.0,类型参数一般大写,与普通形参区分 import java.util.HashMap; public class Test public HashMap h = new HashMap(); public void put(K k,V v) h.put(k,v); public V get(K k) return h.get(k); public static void main(String args) Test t=new Test(); t.put(“key“,10089); int i=t.get(“key“); System.out.println(i); Testt2=new Test(); t2.put(12,12.24); double j = t.get(12.24); System.out.println(j); ,在定义一个泛型类是,在“”之间定义形式类型参数,如class Test中的“K”,”V”不代表制,而是表示类型 实例化泛型对象是,一定要在类名后指定类型参数的值,一共要写两次。如:Testt=new Test(); 泛型中,extends并不代表继承,而是类型范围限制。,当一个泛型声明被调用,实际类型参数取代形式类型参数。 限制泛型的可用类型 class GenericsFoo,这样类中的泛型T只能是Collection接口的实现类,传入非Collection接口编译会出错。 注意:这里的限定使用关键字 extends,后面可以是类也可以是接口。但这里的extends已经不是继承的含义了,应该理解为T类型是实现Collection接口的类型,或者T是继承了XX类的类型。,通配符泛型 为了解决类型被限制死了不能动态根据实例来确定的缺点,引入了“通配符泛型”,针对上面的例子,使用通配泛型格式为,“?”代表未知类型。 1、如果只指定了,而没有extends,则默认是允许Object及其下的任何Java类了。也就是任意类。 2、通配符泛型不单可以向下限制,如,还可以向上限制,如,表示类型只能接受Double及其上层父类类型,如Number、Object

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论