在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型 - 编程入门网
ap<String, String> gm2 = new GenMap<String, String> ();
上例中, T和V虽然看起来是两个不同的类型参数, 但是在使用这个范型类的时候, T和 V很有可能被替换成同一种类型. 因此在声明多个类型参数的范型类时, 要注意避免这种 二义性错误, 例如, 清单10, 二义性错误
在上面这段代码, 如果T和V被替换成同一种类型, set函数的签名(signature)就是完 全一样的, 所以编译器会报告二义性错误. 正确的用法是声明2个不同名的方法, 例 如, 清单10, 二义性错误
图3.3.3 二义性错误 在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型(5)时间:2011-04-02 IBM 邹青 吴嫣 吴疆3.3.4 使用通配符 前面我们创建了范型的列表, 如果我需要一个方法来处理范型列表, 例如, 我们希望 把列表中的每个元素都打印出来, 但是类型参数(type parameter)只能使用在声明一个范 型类的时候, 如果类型参数使用在函数定义里会导致编译错误
在这种情况下, 我们需要用另外一种方法来表示一个范型类, 否则, 就可能需要书写 多个print函数
J2SE 5.0中提供了范型的通配符"?", "?"可以用来代替任何类型, 例如使用通配符来 实现print方法
3.4. 范型的一些局限型 (1) 类型参数不能实例化, 例如,
(2) 不能实例化类型参数的数组
(3) 类的静态变量不能声明为类型参数类型
(4) 范型类不能继承自Throwable以及其子类
3.5.范型小结 范型是J2SE 5.0所提供的一项强大的功能, 使用范型可以创建类型安全的、可重用的 代码, 虽然目前Java的范型还无法和C++的范型相提并论, 但是, 随着Java语言本事的演 进, 范型会在Java语言中发挥更大的作用的. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |