java 5 提供泛型支持,泛型支持是开发人员多年以来所要求的特性。它代表了 java 编程语言一次具有重要意义的升级。像泛型这么复杂的技术,不仅对工具供应商也对开发人员带来了挑战。 本文着重介绍 eclipse 如何应对泛型挑战以及泛型给 java 语言带来的变化,展示了如何在 eclipse 中充分利用泛型,包括对于快速帮助、快速修复、重构和项目参数选择的支持。此外,还展示了完全泛型化语言的一些微妙而重要的方面。
java 中的泛型
几乎从第一个版本开始,java 技术的创立者们就已经开始讨论对该语言添加泛型支持。c++ 通过标准模板库对泛型进行支持,但是由于缺少所有其他类(嵌入在 java 语言中的 object 类中)的一个统一父类,泛型的实现也受到阻碍。java 编程语言的泛型支持是其历史上最重大的语法变化。由于某些显而易见的原因,工具支持比其他 sdk 升级的步法要慢得多。尽管如此,现在 eclipse v3.1 已经对这些语言的新特性有了出色的支持。本文重点介绍其中的一些新特性。
java 5 项目
为了打开 eclipse v3.1 中的 java 泛型支持,需要在机器上安装 java 5,从一些平常的地方都可以下载到 java 5。泛型支持连同项目属性一起出现在编译器设置页面。这意味着像以前一样,每个项目具有独立的 sdk 设置。为了创建使用泛型的项目,必须在创建项目时指定语言级别或者通过现有项目的项目属性指定语言级别。
java 5 设置使用两个特定的属性页。第一个属性页指定编译器设置。
图 1. 针对 java 5 支持的特定于编译器的设置
| j2se 5 选项 | 警告类型 |
|---|---|
| unchecked generic type operation | 编译器每当遇到未经检查的泛型类型操作,就将发出一个错误或者警告。这种操作包括诸如 list 或 arraylist 等类型上的操作,但没有指定类型。每当您使用一个保存有对象的旧式 collection 类时就会产生一个警告。 |
| generic type parameter declared with a final type bound | 编译器每当遇到一个涉及 final 类型的类型绑定时,就会发出一个错误或者警告。请看这个示例方法签名: public int doit(list<? extends string> list) 因为 string 是 final 类型,参数不能扩展 string,所以这样写比较有效: public int doit(list<string> list) |
| inexact type match for vararg arguments | 当编译器不能从 varargs 参数确定开发人员的意图时,它将生成一个警告。有一些与数组相关的 varargs 是不明确的。 |
| boxing and unboxing conversions | 对自动装箱操作发出警告(装箱操作可能影响性能),并且不再对类型包装对象做对象身份的假设。这是一个默认状态下被忽略的小警告。 |
| missing @override annotation | 应该为任何重写的方法包含 @override 注释。缺少这个注释可能表示开发人员没有意识到该方法被重写。 |
| missing @deprecated annotation | 由于缺少 @deprecated 标志而产生的警告。 |
| annotation is used as super interface | 您不能把 deprecated 类作为超级接口。例如,不推荐这种写法: public interface badform extends deprecated { } 。 |
| not all enum constants covered on switch | switch 语句缺少枚举项意味着您可能遗漏一些枚举选项。 |
| unhandled warning tokens in @suppresswarnings | java 5 允许您添加注释以抑制编译器警告。如果您拼写错了一个警告或者使用了一个并不存在的警告,这个标志将发出一个警告。 |
| enable @suppresswarnings annotations | 打开程序地(用代码)抑制您不关心的警告的能力。 |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器