在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型 - 编程入门网
例子中, 类型参数T被用来表示列表中的元素的类型, 即, 这个列表中的元素 是T类型的.
在使用这个列表时, 这个类型参数T会被具体的类型所替代. 注意, 由于T时类型参数不是具体的类, 所以不能使用new操作符创建T的对象,例如new T(), 或者, new T[10]. 3.2.2 范型接口 在J2SE 5.0中, 不仅仅可以声明范型类, 也可以声明范型接口, 声明范型接口和声明 范型类的语法类似, 也是在接口命称后面加上<T>. 例如, 清单3.2.3, 范型接口
3.2.3声明多个类型参数的范型类或者接口 在声明范型类的时候, 可是使用多个类型参数. 多个类型参数之间用逗号分开, 例 如, 清单3.2.4, 多个类型参数的范型类
Eclipse 3.1的类创建向导支持创建范型类, 如下图所示, 图3.2.1 使用类向导创建范型类 在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型(3)时间:2011-04-02 IBM 邹青 吴嫣 吴疆使用Eclipse接口向导创建范型接口 图3.2.2 使用接口向导创建范型接口 3.2.4范型方法 类型参数(type parameter)不仅仅可以用来声明范型类或者范型接口, 也可以用来声 明范型方法, 而且这种声明的范型方法可以用在非范型类中, 声明范型方法的一般格式是 清单3.2.5 范型方法的一般形式
清单3.2.6 范型方法示例
3.2.5 受限范型 受限范型是指类型参数的取值范围是受到限制的. extends关键字不仅仅可以用来声明 类的继承关系, 也可以用来声明类型参数(type parameter)的受限关系.例如, 我们只需 要一个存放数字的列表, 包括整数(Long, Integer, Short), 实数(Double, Float), 不 能用来存放其他类型, 例如字符串(String), 也就是说, 要把类型参数T的取值范型限制 在Number极其子类中.在这种情况下, 我们就可以使用extends关键字把类型参数(type parameter)限制为数字, 清单3.2.7 受限范型示例
在Eclipse 3.1中, 上例中的编译错误信息如下图所示 图3.2.3 由于受限范型导致的编译错误 在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型(4)时间:2011-04-02 IBM 邹青 吴嫣 吴疆3.3 在程序中使用范型 3.3.1在程序中使用范型类 在创建范型类的对象的时候, 和创建普通对象基本类似, 必须提供具体的类类型来替 代类型参数T (J2SE 5.0目前不支持原始类型作为类型参数(type parameter)). 清单3.3.1, 使用范型类
3.3.2 使用范型解决类型安全性问题 使用范型实现的列表是类型安全的, 下列破坏类型安全语句会在编译的时候检查出来 。 把鼠标放在错误标记上, Eclipse 3.1中的错误提示就会显示,如下图所示: 图3.3.2 破坏类型安全引起的错误 3.3.3 二义性错误 GenMap在声明是使用了2个类型参数T和V, 因此在创建GenMap的对象的时候也需要提供 2个具体的类类型来替代这2个类型参数, 例如, 清单9, 多个参数的范型类
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |