Java Generics
文章平均质量分 83
wanghaolovezlq
这个作者很懒,什么都没留下…
展开
-
伪 typedef 反模式(扩展不是类型定义)
将泛型添加到 Java™ 语言中增加了类型系统的复杂性,提高了许多变量和方法声明的冗长程度。因为没有提供 “typedef” 工具来定义类型的简短名称,所以有些开发人员转而把扩展当作 “穷人的 typedef”,结果收到了良好的效果。Java 专家 Brian Goetz 解释了这个 “反模式” 的限制。 对于 Java 5.0 中新增的泛型工具,一个常见的抱怨就是,它使代码变得太冗...原创 2009-08-11 08:43:51 · 96 阅读 · 0 评论 -
了解泛型(识别和避免学习使用泛型过程中的陷阱)
JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。在本文中,Brian Goetz 分析了束缚第一次使用泛型的用户的常见陷阱。表面上看起来,无论语法还是应用的环境(比如容器类),泛型类型(或者泛型)都类似于 C++ 中的模板。但是这种相似性仅限于表面,Java 语言中的泛...原创 2009-08-11 15:18:45 · 115 阅读 · 0 评论 -
JSR-14 原型编译器中泛型类型的一些限制
J2SE 1.5 ― 代号为“Tiger” ― 计划在 2003 年年底发布,它将包括泛型类型(如在 JSR-14 原型编译器中预先展示的那样,现在可下载获得)。在 第 1 部分中,我们讨论了泛型类型的基础知识,以及为什么它们是对 Java 语言的一个重要且迫切需要的补充。我们还说明了为 Tiger 制定的泛型类型的实现怎么会包含数个“缺陷”,这些缺陷限制了可以使用泛型类型的上下文。为了帮助新...原创 2009-08-11 17:48:51 · 114 阅读 · 0 评论 -
克服 JSR-14 原型编译器中泛型的限制
Java 开发人员和研究员 Eric Allen 继续讨论 JSR-14 和 Tiger 中的泛型类型,并着眼于在泛型类型中添加 naked 类型参数的 new 操作支持这一分支。这一系列主要讨论在 Java 编程中添加泛型类型,本文是其中的一篇,将研究还未讨论过的有关使用泛型的两个限制之一,即添加对裸类型参数的 new 操作的支持(如类 C<T> 中的 new T() )...原创 2009-08-11 19:04:37 · 117 阅读 · 0 评论 -
反射泛型
许多工具都是围绕使用 Java 反射而设计的,它们的用途包括从用数据值填充 GUI 组件到在运行的应用程序中动态装载新功能。反射对于在运行时分析数据结构特别有用,许多在内部对象结构与外部格式(包括 XML、数据库和其他持久化格式)之间转换的框架都基于对数据结构的反射分析。使用反射分析数据结构的一个问题是标准 Java 集合类(如 java.util.ArrayList)对于反射来说总是“死胡同...原创 2009-08-12 09:37:51 · 103 阅读 · 0 评论 -
多角度看 Java 中的泛型
泛型是 Sun 公司发布的 JDK 5.0 中的一个重要特性,它的最大优点是提供了程序的类型安全同可以向后兼容。为了帮助读者更好地理解和使用泛型,本文通过一些示例从基本原理,重要概念,关键技术,以及相似技术比较等多个角度对 Java 语言中的泛型技术进行了介绍,重点强调了泛型中的一些基本但又不是很好理解的概念。 为了避免和 C++ 中的模板混淆,本文简要介绍了 Java 中的泛型...原创 2009-08-12 15:32:14 · 64 阅读 · 0 评论 -
使用通配符简化泛型使用(理解通配符捕获)
通配符是 Java™ 语言中最复杂的泛型之一,特别是围绕捕获通配符 的处理和令人困惑的错误消息。在本文中,资深 Java 开发人员 Brian Goetz 解释了一些由 javac 生成的怪异错误消息并提供了一些简化泛型使用的技巧和解决方法。自从泛型被添加到 JDK 5 语言以来,它一直都是一个颇具争议的话题。一部分人认为泛型简化了编程,扩展了类型系统从而使编译器能够检验类型安全;另外...原创 2009-08-13 09:55:51 · 419 阅读 · 0 评论 -
使用通配符简化泛型使用(get-put 原则)
在使用 Java™ 语言的泛型时,通配符非常令人困惑,并且最常见的一个错误就是在使用有界通配符的两种形式的其中之一(“? super T” 和 “? extends T”)时出现错误。您出错了吗?别沮丧,即使是专家也会犯这种错误,本文 Brian Goetz 将展示如何避免这个错误。在 Java 语言中,数组是协变的(因为一个 Integer 同时也是一个 Number,一个 Inte...原创 2009-08-13 10:30:54 · 281 阅读 · 0 评论