Sun计划在J2SE(Java 2标准版)的下个版本中重点改进其易用性。所以,J2SE 1.5(Tiger版)可能是非常重要的一次升级;它的beta版本预计于2003年的晚些时候发布。
J2SE 1.5计划主要从7个方面对语言进行改进:泛型(generics)、增强的for循环("foreach"),autoboxing/unboxing,类型安全的枚举、varargs、静态导入(static import)以及元数据。
Tiger版会评估许多JSR
Sun正在为Tiger评估许多JSR(Java规范请求)。泛型及其可能的增补方案已在JSR 14中讨论。我们在此强调的是新的泛型方案以及如何有效使用它。
提议中的泛型规范的优点
泛型最重要的一个优点就是不要求进行运行时类型检查。语言现有的类型检查是有限的,因为编译器只知道那么多。开发者如果因为错误的强制类型转换而遇到运行时异常,这个限制还会变得更加明显。
相反,支持泛型的编译器将运行时类型检查提前到编译时执行,使代码更安全。
其他优点是是不需要写额外的类(比如C++的模板类)来支持泛型。采用这种新方案,类或接口的声明方式只有微小的区别。具体请参见下面的讨论和示范程序。
提议中的泛型方案如何工作?
泛型方案引入了一种新的尖括号(< >)语法。这些尖括号要放在准备声明的类名旁边。下面比较了类的传统和泛型声明方式:
class Account // 类的传统声明方式
{
/* 细节*/
}
class Account<xxx> // 类的泛型声明方式
{
/* 类 */
}
在上例中,xxx要包括到尖括号中,它可以是你选择的任何标识符。也可在声明方法时使用尖括号语法,本文稍后还会详细讨论。注意,只有类或接口类型才能成为参数;基元类型则不能。下面,让我们详细讨论泛型的每一个要点。