java集合API中如何使用泛型
1、泛型也称为参数化类型。当您将泛型与集合类一起使用时, 将通知编译器限制集合, 以便只允许包含某些类型。
2、下图中的代码是完全合法的砜实蛰斓: 它将字符串添加到 list 实例, 并从同一实例访问字符串。调用 get 时, 需要将醑穿哩侬对象强制转换为字符串。get 方法返回一个 object, 因为 list 是多态的;类需要能够处理任何可能的类型。
3、由于列表不限于只允许作者类的实例, 因此允许使用下图中的代码, 这可能是开发人员犯的一个简单错误。
4、对列表中使用的实例类型没有约束。您可能会发现代码中的镉胶鱿瓜几个问题。是否绝对肯定, 只有这些类型会出现在列表中?否则, 将在运行时引发 classcastexception。通过使用泛型, 运行时的任何潜在异常都将移动到实际的编译器错误。这些在开发生命周期中被发现得更早, 这反过来又导致更快的修复和更干净的代码。下图显示了这一点。
5、作者实例被限制为只获取类型为 "作者" 的对象。另一个测试, 使用字符串, 现在甚至没有编译。编译器已经注意到了这个错误。使此测试使用作者类而不是 string 是一个简单的解决方法。
6、集合 api 中的所有类都使用泛型。正如您所看到的, list 接口及其实现采用了一个类型参数。set 也是如此。正如您所期望的, map 采用两个类型参数: 一个用于键, 另一个用于值。
7、泛型类型也可以嵌套。将hashmap定义为 "HashMap" < Integer,List<String> >: 以整数作为其键、映射到字符串类型列表的 hashmap 是合法的。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:74
阅读量:76
阅读量:35
阅读量:49
阅读量:65